Vous êtes sur la page 1sur 77

Instituto Superior Politcnico de VISEU

Escola Superior de Tecnologia

Gesto de Projectos de Software


Planear, organizar e controlar o processo de desenvolvimento de software Planeamento Estimao Anlise de riscos

Engenharia de Software

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Objectivos
Introduzir a gesto de projectos de software e descrever as suas caractersticas distintivas Discutir o planeamento do projecto e o planeamento do processo Discutir a problemtica dos custos e tempo de desenvolvimento de um projecto de software Mostrar como as representaes grficas do agendamento so utilizadas para a gesto de projectos

Engenharia de Software

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Gesto do Projecto
Produto Princpios da Engenharia da Programao Procedimento Gesto do Projecto Gesto da Configurao Verificao e Validao Qualidade do Software

Requisitos do Utilizador Requisitos do Software Arquitectura Produo Transferncia Operao e Manuteno

Engenharia de Software

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Gesto do Projecto
Processo de planear, organizar, definir recursos, monitorizar, controlar e liderar um projecto de software
Definir um plano para o projecto Alocar pessoas e definir papeis Medir o progresso do projecto

Monitorizao

Standards Planear Planear Requisitos do utilizador Plano

Controlo

Relatrios Produzir Produzir Produtos

Engenharia de Software

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Porque Importante o Planeamento


A engenharia de software uma actividade econmica e dessa forma est subordinada a constrangimentos econmicos e no s tcnicos; Os projectos bem geridos falham por vezes; projectos mal geridos falham inevitavelmente; Vamos aqui introduzir as actividades de gesto, no ensinar a ser gestores. S se aprende a gerir, gerindo.
Engenharia de Software
5

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Gesto do Projecto
Responsabilidades do gestor:
Entregar o produto a tempo Planear Prever

Outras responsabilidades:
Interpessoais Liderar a equipa, representar o projecto Informacionais Disseminar o plano pela equipa, monitorizar o desempenho da equipa Decisionais Alocar recursos, negociar alteraes ao projecto, resolver falhas no plano
Engenharia de Software

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Decises de Gesto
Tm um grande impacto nos aspectos tcnicos da engenharia de software:
se o desempenho for medido em termos de quantas linhas de cdigo forem produzidas, desencorajada a reutilizao; se um agendamento irrealisticamente agressivo for imposto, haver um encorajar na tomada de atalhos que normalmente afectaro a qualidade do produto e reduzem a sua facilidade / possibilidade de manuteno; uma falta de plano, encoraja no sentido de tomada de decises grandiosas ou no prosseguir cuidadosamente, dado que se pensar haver sempre mais tempo.
Engenharia de Software
7

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Questes de Gesto de Projecto


Envolvem normalmente complicadas decises de balanceamento de prs e contras:
Qual ser o benefcio de investir em ferramentas de engenharia de software modernas? Ser que esse investimento possibilitar a diminuio de tempo de desenvolvimento, e se assim for, qual o valor do tempo poupado? Quanto tempo de desenvolvimento adicional custar o adicionar de uma determinada caracterstica? possvel diminuir o tempo de entrega inicial do sistema a expensas de manuteno futura? E quanto custar essa manuteno futura? Quais sero os custos e benefcios de uma entrega incremental, e que caractersticas devero ser entregues no incio? Se uma caracterstica d produto ainda no est devidamente testada, quais sero os benefcios de entregar o produto sem ela? Modificar um produto existente ou criar um a a partir do nada?

Engenharia de Software

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Funes de Gesto de Projecto


Permitir a um grupo de pessoas trabalhar em direco a um objectivo comum.
Actividades:
Planeamento - que objectivos devem ser atingidos, que recursos so requeridos, como podem ser obtidos e como podero ser atingidos s objectivos. Determina o fluxo de informao, pessoas e produtos dentro da organizao. Organizao - Envolve o estabelecimento de linhas claras de autoridade e responsabilidade para grupos de actividades que permitam atingir os objectivos. Recursos humanos - Contratar pessoas para as posies identificadas pela estrutura da organizao. Dirigir - Liderar e guiar o membros do grupo por forma a facilitar a compreenso e identificao da estrutura da organizao, objectivos da empresa e sua cultura. Controlar - Medir e corrigir actividades para assegurar que os objectivos sero atingidos. Controlar requer a medida de desempenho relativamente a planos e a tomada de aces, na ocorrncia de desvios.

Engenharia de Software

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
X Definir Definir produtos produtos Definio dos produtos Modelo do processo Definir Definir actividades actividades Work Packages [entradas, actividades, sadas] Estimar Estimar recursos recursosee durao durao Organizao do projecto [entradas, actividades, sadas, recursos, durao] Definir Definir rede redede de actividades actividades Diagrama de PERT Diagrama de Gantt X Requisitos do utilizador Requisitos do software Arquitectura

Standards

Dados histricos sobre custos Consideraes sobre riscos Factores ambientais ( tecnologias)

Definir Definir prazos prazosee custos custos Restries sobre tempo e recursos

Recursos Custos

Engenharia de Software

10

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
D efinir os produtos
Fase R equisitos do softw are Arquitectura Produo Transferncia Entrada R eq. utilizador R eq. softw are D esenho arqui. C digo. M an. U til. Sada R eq. softw are D esenho arqui. C digo, M an. U til. M an. Instalao

D efinir as actividades D efinir m odelo do processo


C ascata - R equisitos do utilizador conhecidos e estveis, durao do projecto reduzida (< 2 anos), produto deve ser entregue de um a vez
R U R U R SS R

D AA D

C C

TT

O M O M

Engenharia de Software

11

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
Definir modelo do processo
incremental - Entrega do produto de acordo com prioridades do utilizador, necessidade de melhorar a integrao com o sistema, evidncia de que o produto ser aceite pelo utilizador

RU RU

RS RS

DA DA

C C

TT

OM 1 OM 1

C C

TT

OM 2 OM 2

Engenharia de Software

12

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
Definir o modelo do processo
Evolucionrio - Necessria experimentao do utilizador para completar os requisitos; partes do produto dependem da disponibilidade de futuras tecnologias; requisitos do utilizador antecipados mas no conhecidos; no impedir o desenvolvimento de partes do produto devido a dificuldades na realizao de outras
Desenv 1 Desenv 1 OM 1 OM 1

Desenv 2 Desenv 2

OM 2 OM 2

Desenv 3 Desenv 3

OM 3 OM 3

Engenharia de Software

13

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
Definir as actividades (continuao) Seleccionar ferramentas a utilizar em cada actividade Definir pacotes de actividades (work packages)
Critrios a utilizar Coerncia - As tarefas de um pacote devem ter o mesmo objectivo Coeso - As dependncias entre pacotes devem ser minimisadas Continuidade - As tarefas de produo devem ser contnuas de modo a maximizar a eficincia Quanto maior o nvel de detalhe maior o grau de preciso na estimao de custos

Engenharia de Software

14

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
Recursos Humanos:
Pode no ser possvel designar as pessoas ideais para trabalhar num projecto O oramento do projecto pode no comportar a afectao ou contratao de pessoal muito bem pago; Pessoal com experincia adequada pode no estar disponvel; Uma organizao pode desejar desenvolver competncias de empregados seus, no mbito de um projecto de software.

Engenharia de Software

15

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
Estim ar recursos e durao R ecursos hum anos
Papeis - G estor do projecto, responsvel pela equipa, program adores, engenheiros de teste, engenheiros de qualidade Regras - G arantir que cada m em bro da equipa reporta a um nico indivduo; garantir que no h m ais de 7 m em bros a reportar a um nico indivduo O rganigram a
G estor snior

G estor do projecto Responsveis de equipa

Eng. qualidade

Program adores

Engenharia de Software

16

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
E stim ar recursos e durao E sforo
N m ero de pessoas-m s necessrias execuo do projecto. V alor obtido atravs da aplicao de m odelos predictivos (D ecom posio, C O C O M O , P utnam , definidos m ais adiante) 1 pessoa-m s = 1 pessoa a trabalhar durante um m s (22 dias) ou 22 pessoas a trabalhar durante um dia 1 pessoa-ano = 11 pessoas-m s 1 pessoa-m s = 22 pessoas-dia 1 pessoa-dia = 8 pessoas-hora

C ustos no laborais
Ferram entas com erciais utilizadas para produzir o produto, servios externos, despesas com viagens, despesas de envio do produto, seguros

D urao - C alcula-se a partir do esforo e de valores histricos


da produtividade m dia da equipa do projecto

Engenharia de Software

17

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
Definir rede de actividades Representar os pacotes de actividades como um conjunto de ns com ligaes entre eles. Uma sequncia de ligaes define um caminho a seguir pelo projecto. Ligaes circulares no so permitidas O objectivo desenhar um percurso que considera todas as dependncias do projecto Caminho crtico - Percurso mais longo atravs das ligaes entre actividades, em termos de durao do projecto Flutuaes dos pacotes de actividades - Diferena entre o tempo mais adiantado (earliest) e mais atrasado (latest) de incio de um pacote do projecto
Engenharia de Software
18

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Planeamento do Projecto
D efinir prazos e custos D efinir datas de incio e fim dos pacotes de actividades
C um prindo com as restries de tem po e recursos M inim izando o custo total Adm itindo riscos que possam atrasar o projecto Se o prazo total do projecto viola restries de tem po, necessrio redefinir os pacotes de actividades

O custo total m nim o do projecto corresponde som a de todos os pacotes de actividades


O s custos laborais devem ser calculados a partir da som a do tem po dispendido por cada indivduo no projecto D eve-se incluir os tem pos de espera pelo incio de pacotes de actividade O s prazos devem ser ajustados de m odo a m inim izar o custo total do projecto

Engenharia de Software

19

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Processo de Planeamento do Projecto


Estabelecer os constrangimentos (data de entrega, staff disponvel, oramento, etc.) que afectam o projecto Efectuar a atribuio dos parmetros inciais do projecto (estrutura, tamanho e distribuio de funes) Definir metas do projecto e entregas

while o projecto no foi completado ou cancelado

loop

Desenhar uma agenda do projecto Iniciar as actividades de acordo com o agendamento ou dada permisso para continuar Esperar (por um tempo, 2-3 semanas) Rever o progresso do projecto e discrepncias notadas Rever as estimativas dos parmetros do projecto Actualizar a agenda do projecto Renegociar os constrangimentos do projecto e entregas (se o projecto estiver atrasado)

If (surgirem problemas, no sendo possvel reviso)


Iniciar pesquisa tcnica e possvel reviso, para encontar possveis alternativas de desenvolvimento que permitam responder aos constrangimentos do processo

end if end loop Engenharia de Software


20

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Processo de Planeamento do Projecto


Observaes:
Mostrar que o planeamento do projecto um processo iterativo que s est completo quando o projecto est completo; medida que a informao sobre o projecto fica disponvel durante o projecto, o plano deve ser revisto regularmente; Se o projecto ficar atrasado, tentar renegociar os constrangimentos do projecto e entregas; Caso a renegociao falhe, tentar encontar alternativas de desenvolvimento que permitam colocar o projecto dentro dos constrangimentos; No deve assumir-se que tudo ir correr bem; as suposies e agendamento iniciais devem ser pessimistas e no optimistas; Deve ser includo suficiente lugar a contingncias no plano de forma a que no haja lugar a uma renegociao constante.
Engenharia de Software
21

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Estrutura do Plano de Projecto


Estabelece o recursos disponveis, a diviso do trabalho e a agenda do projecto
Introduo Descreve brevemente os objectivos e estabelece os constrangimentos (oramento, tempo, etc.) que afectam a gesto do projecto. Organizao do Projecto Descreve a forma como a equipa de desenvolvimento est organizada, as pessoas envolvidas e as suas funes na equipa. Anlise de Risco Descreve os riscos possveis do projecto, a possibilidade desses riscos surgirem e as estratgias para a reduo dos riscos propostas.
Engenharia de Software

22

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Estrutura do Plano de Projecto


Requisitos de recursos de hardware e software O hardware e software de suporte que necessrio para o projecto; so includos clculos, estimativas e a agenda de entrega respectiva. Diviso do trabalho Diviso do trabalho em actividades, identificando as metas intermdias e entregas associadas a cada actividade. Gesto de projecto Descreve a dependncia entre actividades, o tempo estimado para atingir cada meta intermdia e a alocao de pessoas a actividades. Mecanismos de monitorizao e relatrios Descreve os relatrios de gesto que devem ser produzidos, quando devem ser produzidos e mecanismos de monitorizao.
Engenharia de Software
23

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Organizao de Actividades
As actividades num projecto devem ser organizadas para produzir resultados tangveis. Sem isto no possvel avaliar o processo e as estimativas de custo e a agenda no podem ser actualizadas. Podem ser:
Metas parciais so o ponto final de uma actividade de um processo, findo o qual deve ser apresentado um relatrio do progresso gesto do projecto. Entregas so resultados do projecto a ser entregues aos clientes. Podem ser metas parciais. Constituem em regra o final de uma fase do projecto. Por exemplo, especificao, concepo... As metas parciais no constituem necessariamente entregas, dado que os resultados podem ser para consumo interno.

O processo em cascata conduz definio directa de metas parciais, da a sua grande utilizao.

Engenharia de Software

24

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Metas Parciais e Entregas


Para estabelecer metas parciais, o processo de software deve ser dividido em actividades. Uma sada deve ser associada a cada actividade. Apresenta-se abaixo um exemplo relativo s actividades envolvidas na especificao de requisitos, quando a prototipagem utilizada para a validao dos requisitos.
ACTIVITIES Feasibility study Requirements analysis Prototype development Design study Requirements specification

Feasibility report

Requirements definition

Evaluation report MILESTONES

Architectural design

Requirements specification

entrega

entrega

Engenharia de Software

25

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Agenda do Projecto
Estimar tempo e recursos necessrios para completar as actividades e organiz-las numa sequncia coerente.
Diviso do projecto em tarefas e estimar o tempo e recursos necessrios para completar cada tarefa Organizar as tarefas concorrentemente para permitir uma utilizao ptima da fora de trabalho Minimizar as dependncias entre tarefas para evitar atrasos motivados pela espera forada de uma tarefa, dado que outra ainda no est completa Dependente da intuio dos gestores de projecto e da sua experincia
Engenharia de Software
26

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Problemas do Agendamento
Estimar o grau de dificuldade dos problemas e os consequentes custos do desenvolvimento de uma soluo difcil A produtividade no proporcional ao nmero de pessoas a trabalhar numa tarefa Acrescentar pessoas a um projecto atrasado, faz com que ele se atrase mais, devido a sobrecargas de comunicao O inesperado sempre acontece; deve permitir-se sempre margem para as contingncias no planeamento

Engenharia de Software

27

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Grficos de Barras e Redes de Actividades


Notaes grficas para ilustrar a agenda do projecto Mostram a diviso do projecto em tarefas Os grficos de actividades mostram as dependncias entre tarefas e o caminho crtico Os grficos de barras mostram o agendamento das actividades no tempo e mostram quem o responsvel por cada tarefa e quando tem incio e fim.

Engenharia de Software

28

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Durao das Tarefas e Dependncias


Task T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 Duration (days) 8 15 15 10 10 5 20 25 15 15 7 10 Dependencies

T1 T2, T4 T1, T2 T1 T4 T3, T6 T5, T7 T9 T11


Tem de estar terminada antes de iniciar T3. Por exemplo, T1 pode ser a concepo de um componente e T3 a sua implementao.

Engenharia de Software

29

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Rede de Actividades
1 4/ 7/ 94 8 day s T1 4/ 7/ 94 s tart 1 5 d ay s T2 1 0 d ay s T4 1 8/ 7/ 94 M5 2 5 d ay s T8 1 9/ 9/ 94 Fi ni sh 2 5/ 7/ 94 M2 T7 1 0 d ay s T5 1 1/ 8/ 94 M7 1 5 d ay s T1 0 M1 1 5 d ay s T3 5 d ays T6 2 0 d ay s 4/ 8/ 94 M4 1 5 d ay s T9 2 5/ 7/ 94 M3 2 5/ 8/ 94 M6 7 day s T1 1 5/ 9/ 94 M8 10 days T1 2

Engenharia de Software

30

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Agendamento Temporal de Actividades


4/7 Start T4 T1 T2 M1 T7 T3 M5 T8 M3 M2 T6 T5 M4 T9 M7 T10 M6 T1 1 M8 T12 Finish 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

T8 pode atrasar-se 4 semanas que no afecta o agendamento

Barra Sombreada: Flexibilidade permitida Barra sem Sombras: Actividades que constituem o caminho crtico, qualquer atraso implica atraso do projecto

Engenharia de Software

31

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodos e Tcnicas
Aplicao ao planeamento do projecto
Modelao de processos Organizao de equipas Estimao de recursos e durao Definio de redes de actividades Definio de prazos

Engenharia de Software

32

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Organizao de Equipas
R acional - Eficincia o seu objectivo, decises racionais
A organizao tem nveis hierarquicos definidos m as funciona dem ocraticam ente Considera m ltiplas equipas lideradas por engenheiros sniores Cada equipa executa um a dada tarefa. O s engenheiros sniores reportam directam ente ao seu supervisor Aplica-se a projectos de grande dim enso

B urocrtica - Estabilidade o seu objectivo, decises rotineiras


O s m em bros da equipa reportam directam ente ao seu supervisor que controla as suas tarefas e responsvel pela produtividade Nota-se um dfice de com unicao entre os m em bros da equipa Funciona bem quando a tarefa sim ples, bem conhecida, pode ser desem penhada pelos participantes e a im portncia de term inar o projecto ultrapassa outros factores (m oral, desenvolvim ento individual)

Engenharia de Software

33

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Organizao de Equipas
Descentralizada - Objectivos dispersos, decises imprevisveis
A responsabilidade encontra-se distribuda, no existindo nveis hierarquicos. O trabalho final provm de todo o grupo Privilegia o consenso, satisfao e motivao da equipa Reduz a produtividade individual Mais adequado a projectos complexos e abertos, exigindo criatividade Mais comunicao entre o grupo leva a projectos de longa durao. No apropriada a grandes equipas

Poder poltico - Objectivos conflituosos, decises desordenadas


Desaconselhvel no contexto do desenvolvimento de software
Engenharia de Software

34

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Organizao de Equipas
Linhas de guia para a definio de equipas
Controlo descentralizado melhor quando a comunicao entre membros da equipa fundamental para o processo de desenvolvimento Controlo centralizado melhor quando o tempo o factor fundamental no desenvolvimento do projecto A organizao deve limitar a comunicao entre os membros da equipa ao essencial, nem mais nem menos A organizao tem de considerar outros factores para alm da produtividade: rotao de pessoal, desenvolvimento de cada individuo, disseminao de conhecimento, etc.

Engenharia de Software

35

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodos e Tcnicas
Modelos de estimao de recursos e durao do projecto Comparao do projecto com outros projectos semelhantes, para os quais se possui informao sobre produtividade, durao e custos
Mtodo de Decomposio

Utilizao de frmulas predictivas, obtidas empiricamente, que permitem obter valores para as variveis de estimao em funo das caractersticas do software a desenvolver
Mtodo COCOMO (1981) Mtodo Putnam

Engenharia de Software

36

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo de Decomposio
Aproximao do tipo dividir e conquistar
Decompor o projecto em funes principais Calcular o esforo de cada funo utilizando dados histricos sobre a produtividade Utilizar mtricas sobre a produtividade baseadas em: Linhas de cdigo (LDC) - Medida directa sobre o produto, focando na sua dimenso Pontos de funo (PF) - Medida indirecta sobre o produto.
Em vez de medir directamente as caractersticas do software produzido, classifica-se este de acordo com critrio que medem o seu grau de funcionalidade e utilidade

Fazer a mdia entre valores pessimista, esperado e optimista da produtividade

Engenharia de Software

37

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Linhas de Cdigo
Vantagens da utilizao de LDC
LDC um artefacto que existe em todos os processos de desenvolvimento de software LDC facilmente calculvel fcil estabelecer honorrios standard a partir desta mtrica

Desvantagens
LDC depende muito da linguagem de programao utilizada LDC penaliza os programadores mais organizados LDC penaliza a estruturao do cdigo, assim como os programas muito pequenos A utilizao de LDC em estimao requer um nvel de detalhe difcil de obter a priori Falta de consensos (ex: em C, conta-se o n de { ?)
Engenharia de Software

7
38

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Pontos de Funo
J sabemos que uma forma de modelar um sistema utilizando diagramas de fluxos de dados (DFDs)
mostram as vrias transformaes de dados proporcionam uma rede das funes a serem executadas. DeMarco desenvolveu um modelo de estimao, baseado em primitivas funcionais; Posteriormente foi desenvolvido um modelo de estimao de custos, baseado na contagem do nmero de estruturas de dados a ser utilizadas.

Neste mtodo assume-se que que o nmero de diferentes estruturas de dados um bom indicador do tamanho.
Trata-se dum mtodo particularmente adaptado a projectos ligados a aplicaes de negcio. Menos bem adaptado em projectos onde as estruturas de dados desempenhem um papel menos preponderante, onde a nfase seja nos algoritmos (p. ex. compiladores e aplicaes em tempo real).

Engenharia de Software

39

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Pontos de Funo
Baseia-se numa pontuao da funcionalidade do software Deriva-se a partir de uma relao emprica entre valores mensurveis do software e previses sobre o seu grau de complexidade Valores mensurveis: Entradas - Cada tipo de dados destinado aplicao e introduzido pelo utilizador no sistema Sadas - dados/ecrs/erros fornecidos ao utilizador pela aplicao (itens individuais no so contados separadamente) Queries - Conjuntos indissociaveis de interaces (entradas + sadas) distintas das anteriores Ficheiros - Agrupamentos lgicos de dados (no necessariamente ficheiros) mantidos pela aplicao Interfaces - Trocas de informao com outros sistemas (um ficheiro vindo de outro sistema conta igualmente como interface)
Engenharia de Software
40

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Pontos de Funo
Tabela de clculo
P a r m e tro E n tra d a s S a d a s Q u e rie s F ic h e iro s In te rfa c e s N S im p le s 3 4 3 7 5 P esos M d io 4 5 4 10 7 C o m p le xo 6 7 6 15 10 TOTAL S u b -T o ta l

Nota: Os pesos so seleccionados empiricamente, a partir de dados histricos

Engenharia de Software

41

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Pontos de Funo
FP = total-tabela * (0.65 + 0.01 * SUM (Fi)) i=1-14
(Fi = ajuste de com plexidade, variando entre 0 (sem influncia) e 5 (essencial))
1 - Precisa de sistem a de backup/recovery fivel? 2 - Requer com unicao de dados? 3 - Existem funes de processam ento distribudo? 4 - O desem penho crtico? 5 - Executa-se num am biente pesado? 6 - interactivo? 7 - Entrada de dados requer m ltiplas janelas? 8 - Actualiza ficheiros de dados em tem po real? 9 - Entradas/sadas/queries/ficheiros com plexos? 10 - Com plexidade do processam ento interno? 11 - Cdigo deve ser reutilizado? 12 - Produto deve incluir a instalao? 13 - Cdigo deve ser desenhado para m ltiplas instalaes? 14 - Cdigo deve ser desenhado para facilitar utilizao?

O ajuste de complexidade leva em conta caractersticas da aplicao, que influenciam o esforo de desenvolvimento.
Engenharia de Software
42

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo
Verificador lxico
Utilizador Utilizador
Nome do ficheiro N palavras processadas

Nome do dicionrio

Verificador
N de erros encontrados

Utilizador Utilizador

Dicionrio

Palavras do dicionrio

Lista de erros

N N N N N

de entradas = 2 (nome do ficheiro + dicionrio) de sadas = 3 (n palavras, n erros, lista de erros) de queries = 2 (nome do documento + dicionrio) de ficheiros = 1 (dicionrio) interfaces = 1 (dicionrio)
43

Engenharia de Software

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo
P esos P arm etro E ntradas S adas Q ueries Ficheiros Interfaces N 2 3 2 1 1 S im ples 3 4 3 7 5 M dio 4 5 4 10 7 C om plexo 6 7 6 15 10 S ub-Total 6 12 8 10 0 43 TO TA L

Engenharia de Software

44

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo
1 - Backup/recovery 5 2 - Comunicao dados 0 3 - Proces. distribudo 0 4 - Desempenho crtico 1 5 - Ambiente pesado 4 6 - Interactivo 2 7 - Janelas 0 8 - Acesso a ficheiros 1 9 - Compexidade entradas/... 5 10 - Compexidade process. 4 11 - Reutilizao 2 12 - Instalao 3 13 - Mltiplas instalaes 4 14 - Facilidade utilizao 3 0 - Sem influncia 5 - Essencial

SUM(Fi) = 34
PF = 43 * (0.65 + 0.01 * 34) = 42.57

Se 1 PF = 2 pessoas-dia Ento o programa leva 85 dias a ser desenvolvido

Engenharia de Software

45

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Pontos de Funo
Verso 2 - Mais adequada a programas com complexidade algoritmica (versus manipulao de dados)
P a r m e tro E n tra d a s S a d a s Q u e rie s F ic h e iro s In te rfa c e s A lg o ritm o s N Peso 4 5 4 7 7 3 TOTAL S u b -T o ta l

Engenharia de Software

46

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Pontos de Funo
Vantagens da utilizao de PF
Estas mtricas no dependem da linguagem de programao Podem ser aplicadas a programas de grande complexidade Representam a funcionalidade ou utilidade do software Baseiam-se em dados que podem ser conhecidos no incio do projecto

Desvantagens
Baseiam-se em dados subjectivos Os dados so difceis de obter a posteriori PF apenas um nmero, sem qualquer realidade fsica

Engenharia de Software

47

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Relao entre LDC e PF


A relao entre LDC e PF depende da linguagem de programao utilizada:
LDC/PF
Assembly C Cobol Fortran Pascal ADA APL O-O Smalltalk Ger. de cd. Spreadsheet 300 150 100 100 90 70 32 30 20 15 6

1 LDC de ADA oferece 1.4 vezes mais funcionalidade que 1 LDC de Fortran

Engenharia de Software

48

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo de Decomposio
Estimar esforo do projecto
Examinar o contexto do software e extrair as suas funes principais Estimar para cada funo os valores LDC e PF Determinar valores de produtividade adequados a cada funo Atribuir a cada funo uma estimao do esforo exigido para trs situaes: optimista, mais provvel e optimista Valor esperado do esforo = (a + 4 * m + b) / 6 (a - optimista, m - mais provvel, b - pessimista) Adicionar os valores obtidos para cada funo
Proje cto T1 T2 Opti + mista prov vel Pessi Espe $/LDC mista rado Linha/ Custo Meses ms

Engenharia de Software

49

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo de Decomposio
Quando no existem valores histricos da produtividade
Examinar o contexto do software e extrair as suas funes principais Define-se para cada funo as etapas necessrias sua realizao: anlise, desenho, codificao e teste Estimar para cada actividade um esforo necessrio (em pessoas-ms) Atribuir um custo de mo-de-obra a cada etapa e calcular os valores totais
Funes Anlise Desenho Codificar Testar requisitos F1 F2 F3 Total Total

Engenharia de Software

50

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo
Distribuir caixas pelos contentores
Recursos: Sensor Distribuidor Base de dados MS Access MS Developer Studio Distribuidor Restries: Velocidade das caixas Velocidade do sensor Robustez

1 - Ler cdigo

Sensor: leitor de cdigo de barras

2 - Enviar o cdigo

3 - Descodificar cdigo 4 - Pesquisar base de dados

Programa

6 - Produzir sinal de controlo

5 - Determinar localizao

Interfaces: Leitor de cdigos Distribuidor Base de dados

Engenharia de Software

51

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo
Funes
F1 - Descodificar cdigo F2 - Pesquisar base de dados F3 - Determinar localizao F4 - Produzir sinal de controlo LDC: F1=100 F2=200 F3=50 F4=500 TOT=850 PF ~= LDC / 30 (para cdigo C++) Produtividade = 25 LDC/pessoa-dia (valor histrico) Esforo = 850 / 25 = 34 pessoas-dia 1 pessoa-hora = 10 KPTE Custo = 34 * 10 * 8 = 2720 KPTE

Estimar individualmente os valores LDC e PF

Engenharia de Software

52

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo
Estimao pessimista
Produtividade = 15 LDC/pessoa-dia (valor histrico) Esforo = 850 / 15 = 57 pessoas-dia Custo = 57 * 10 * 8 = 4560 KPTE

Estimao optimista
Produtividade = 50 LDC/pessoa-dia (valor histrico) Esforo = 850 / 50 = 17 pessoas-dia Custo = 17 * 10 * 8 = 1360 KPTE

Mdia ponderada
E = (a + 4 m + b) / 6 = (57 + 4 * 34 + 17) / 6 = 35 pessoas-dia
(a - optimista, m - mais provvel, b - pessimista)

Engenharia de Software

53

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo de Decomposio
Comparao entre LDC/PF e estimao Se se possuirem valores histricos devem-se utilizar os dois mtodos As diferenas de resultados permitem aferir a preciso da estimao Se o desvio for < 10% a estimao boa Se for > 10% ento:
O contexto e objectivos do projecto no foram bem definidos Os dados utilizados na produtividade so inapropriados ou obsoletos Torna-se necessrio determinar as causas do problema

Engenharia de Software

54

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo COCOMO
COCOMO - Constructive Cost Model Utiliza uma frmula matemtica baseada nas LDC Modelo 1. COCOMO Bsico
Determina o esforo (e o custo) em funo da dimenso do software (LDC)

Modelo 2. COCOMO Intermdio


Determina o esforo (e o custo) em funo da dimenso do software (LDC) e de um conjunto de factores subjectivos (produto, hardware, pessoas, atributos do projecto)

Modelo 3. COCOMO Avanado


COCOMO Intermdio + classificao dos factores subjectivos em funo das etapas do processo (anlise, desenho, etc.)

Engenharia de Software

55

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo COCOMO
Os mtodos COCOMO categorizam o software desenvolvido nos modos Orgnico - Pequenos e simples, com pequenas equipas Semi-independente - Complexidade e dimenso mdias, equipas com conhecimentos diferenciados (e.g. sistema distribudo) Embebido - Projectos com requisitos muito bem definidos e restries muito apertadas (e.g. controlo de voo), equipas multidisciplinares

Engenharia de Software

56

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo COCOMO
M o d o s d e d e s e n v o lv im e n to
F u n cio n a lid a d e O rg n ico C o m p re e n s o d o s o b je c t ivo s d o p ro d u t o E x p e ri n c ia c o m p ro d u t o s s e m e lh a n t e s N e c e s s id a d e d e c o n fo rm id a d e c o m re q u is it o s p r e s t a b e le c id o s N e c e s s id a d e d e c o n fo rm id a d e c o m in t e rfa c e s e x t e rn a s D e s e n vo lvim e n t o c o n c u rre n t e d e h a rd w a re e s o ft w a re N e c e s s id a d e d e e s t ru t u ra s d e d a d o s o u a lg o rit m o s in o va d o re s In t e re s s e e m t e rm in a r o p ro d u t o c e d o D im e n s o d o p ro d u t o A la rg a d o E x t e n s ivo M odo S e m i -d e sta c a d o E m b e b i d o C o n s id e r ve l C o n s id e r ve l G e ra l M o d e ra d o

B s ic o

C o n s id e r ve l

To ta l

B s ic o

C o n s id e r ve l

To ta l

M o d e ra d o

E x t e n s ivo

M n im o R e d u z id o < 50 K LDC

A lg u m M d io < 300 K LDC

C o n s id e r ve l E le va d o Q u a lq u e r

Engenharia de Software

57

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

COCOMO Bsico
E = a * K LD C D = c *E d
b

(em pessoas-m s) (em m eses de desenvolvim ento)

P ro je c to O rg n ic o S e m i-in d . E m b e b id o

a 2 .4 3 3 .6

b 1 .0 5 1 .1 2 1 .2

c 2 .5 2 .5 2 .5

d 0 .3 8 0 .3 5 0 .3 2

Engenharia de Software

58

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

COCOMO Intermdio
E = a * KLDC b * EAF
EAF - Factor de ajustamento obtido a partir de 15 atributos EAF = Me1 x Me2 x Me3 x . x Me15 Me - Multiplicador de esforo, retirado da tabela seguinte

Projecto Orgnico Semi-ind. Embebido

a 3.2 3 2.8

b 1.05 1.12 1.2

Engenharia de Software

59

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

COCOMO Intermdio
M u ltip lic a d o re s d e e s fo r o
C l a ssifi c a o M u i to re d u z id o A tr i b u to s d o p r o d u to F i a b i l i d a d e d o s o ft w a r e n e c e s s ria D im e n s o d a b a s e d e d a d o s C o m p le x id a d e d o p ro d u t o A tr i b u to s d o c o m p u ta d o r R e s t ri e s a o t e m p o d e execuo R e s t ri e s a o a rm a z e n a m e n t o d e d a d o s V o la t ilid a d e d a m q u in a vi r t u a l T e m p o d i s p o n ve l d o c o m p u ta d o r A tr i b u to s d o s i n d i v d u o s C a p a c id a d e d o s a n a lis t a s E x p e r i n c i a n o d e s e n v. D e a p lic a e s C a p a c id a d e d e p ro g ra m a o E x p e ri n c ia c o m a m q u in a vi r t u a l E x p e ri n c ia c o m a lig u a g e m d e p ro g . A tr i b u to s d o p r o j e c to U s o d e p r t ic a s m o d e rn a s d e p ro g ra m a o U s o d e fe r r a m e n t a s d e s o ft w a r e P r a z o s d e d e s e n vo l vi m e n t o R e d u z id o N o m in a l E le v a d o M u i to e le v a d o .7 5 .7 0 .8 8 .9 4 .8 5 1 .0 1 .0 1 .0 1 .1 5 1 .0 8 1 .1 5 1 .4 1 .1 6 1 .3

1 .0 1 .0 .8 7 .8 7 1 .0 1 .0

1 .1 1 1 .0 6 1 .1 5 1 .0 7

1 .3 1 .2 1 1 .3 1 .1 5

1 .4 6 1 .2 9 1 .4 2 1 .2 1 1 .1 4

1 .1 9 1 .1 3 1 .1 7 1 .1 1 .0 7

1 .0 1 .0 1 .0 1 .0 1 .0

.8 6 .9 1 .8 6 .9 0 .9 5

.7 1 .8 2 .7 0

1 .2 4 1 .2 4 1 .2 3

1 .1 1 .1 1 .0 8

1 .0 1 .0 1 .0

.9 1 .9 1 1 .0 4

.8 2 .8 3 1 .1

Engenharia de Software

60

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo COCOMO
O mtodo permite analisar a sensibilidade do projecto a determinados factores (e.g. variar a experincia dos programadores) O mtodo avanado apresenta resultados semelhantes ao mtodo intermdio, pelo que este ltimo deve ser utilizado preferencialmente O mtodo bsico deve ser utilizados apenas para estimativas preliminares No espectvel que este tipo de modelo apresente estimativas precisas Resultados com variaes <20% na estimativa dos custos e <30% na estimativa da durao so considerados aceitveis
Engenharia de Software
61

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo
Distribuio de caixas pelos contentores COCOMO Bsico Projecto orgnico 850 LDC E = 2.4 * 0.85 1.05 = 2.02 pessoas-ms D = 2.5 * 2.02 0.38 = 3.26 meses Nmero de pessoas
N = E / D = 0.6 pessoas (leia-se: ~ dois teros do trabalho de uma pessoa)

Engenharia de Software

62

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo Putnam
Assume uma distribuio do esforo em funo da durao de um projecto Foi derivado de projectos > 30 pessoas-ano
Definio do sistema Especificao Desenho e Desenvol vimento Operao e manuteno Codificao Teste

Instalao Esforo

40% do total

60% do total

Engenharia de Software

63

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo Putnam
Relaciona linhas de cdigo com o esforo e tempo necessrio para desenvolver o software L = Ck * K 1/3 t 4/3
L - n linhas de cdigo fonte K - esforo (pessoas-ano) t - tempo de durao do projecto (em anos) Ck - constante que caracteriza o estado de amadurecimento do ambiente de desenvolvimento (2000 < Ck < 11000; 2000 fraca metodologia, pouca documentao; 8000 - bom ambiente de desenvolvimento, boa documentao; 11000 - ambiente excelente, com ferramentas de gerao automtica de cdigo)

Engenharia de Software

64

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodo Putnam
Esforo de desenvolvimento de cdigo K = L 3 / (Ck 3 t 4) (pessoas-ano)

Note-se que o modelo apresenta uma relao no linear entre o esforo e a durao do projecto, pelo que um pequeno aumento do tempo de durao permite reduzir significativamente o esforo

Engenharia de Software

65

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo
Distribuio de caixas pelos contentores 850 LDC Ck = 8000 (bom ambiente) t = 0.25 (3 meses) K = 850 3 / (8000 3 * 0.25 4) = 0.3 pessoas-ano 1 pessoa-ano = 11 pessoas-ms K = 3.3 pessoas-ms

Engenharia de Software

66

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodos e Tcnicas
X Definir Definir produtos produtos Definio dos produtos Modelo do processo Work Packages [entradas, actividades, sadas] Estimar Estimar recursos recursosee durao durao Organizao do projecto [entradas, actividades, sadas, recursos, durao] Definir Definir rede redede de actividades actividades Diagrama de PERT Diagrama de Gantt X Requisitos do utilizador Requisitos do software Arquitectura

Standards

Definir Definir actividades actividades

Dados histricos sobre custos Consideraes sobre riscos Factores ambientais ( tecnologias)

Definir Definir prazos prazosee custos custos Restries sobre tempo e recursos

Recursos Custos

Engenharia de Software

67

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodos e Tcnicas
Definio de redes de actividades Grfico de PERT (Program Evaluation and Review Technique)
Rede de caixas e setas Cada caixa representa uma actividade Cada seta representa uma dependncia entre duas actividades Uma actividade dependente no pode comear antes da anterior terminar Metas importantes (milestones) - Actividade cuja concluso representa um ponto importante na vida do projecto Requer Lista de todas as actividades do projecto Estimativa da durao de cada actividade
Engenharia de Software

68

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo

Engenharia de Software

69

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Grfico de PERT
Vantagens Fora o planeamento Mostra as interrelaes entre tarefas do projecto Identifica o caminho crtico Mostra possveis paralelismos entre actividades Permite simular alternativas Permite o control do projecto

Engenharia de Software

70

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Mtodos e Tcnicas
Definio de prazos Grfico de Gantt
Grfico de barras onde cada barra representa uma actividade Pode ser utilizado em mltiplas actividades: Definir prazos Definir custos Planear utilizao de recursos Definir flutuaes nas actividades

Engenharia de Software

71

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Exemplo

Engenharia de Software

72

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Definio de Prazos
Utilizao do grfico de Gantt
Graus de liberdade: custo (esforo) e durao A durao normalmente mais importante do que o custo A relao entre o esforo e durao no linear Formula de Putnam K = L3 / (C3 * t4) L=10 000 LDC C = 8 000 para t = 1 ano - K = 10 0003 / 8 0003 = 1.95 pessoas-ano para t = 1.5 anos - K = 10 0003 / 8 0003 * 1.54 = 0.38 pessoas-ano

Concluso: estender o projecto em 6 meses, reduz o esforo em 80%.


Engenharia de Software

73

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Definio de Prazos
A relao entre a dimenso da equipa e a produtividade no linear (mythical man-month conflict)
Existe um custo associado comunicao entre os membros da equipa 1 pessoa produz 5 000 LDC/ano individualmente Custo de comunicao = 250 LDC/ano Grupo de 4 pessoas = 6 canais de comunicao Produtividade do grupo = LDC/ano grupo - custo comunicao P = 4*5 000 - (250*6) = 18 500 LDC/ano (7.5% menos) Adicionar 2 pessoas 2 meses antes do fim do ano: Grupo de 6 pessoas = 14 canais de comunicao P = 4*5 000 - (250*6/12*10) + (5 000/12*2) - (250*14/12*2) = 19 000 LOC/ano
Engenharia de Software
74

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Distribuio de Trabalho no Tempo


Acabamos de ver que um pequeno alongamento de tempo de execuo, implica uma grande reduo de esforo. Devido a:
sobrecarga de comunicao
no h um crescimento linear do nmero de canais de comunicao e o nmero de pessoas do grupo: 4 - 6 canais 5 - 10 canais 6 - 14 canais

ao adicionar mais pessoas a um grupo durante a execuo do projecto, leva a que a produtividade decresa a princpio:
no incio, os novos membros da equipa no so produtivos; requerem ateno e tempo por parte dos outros membros, durante o processo de aprendizagem.

Leva lei de Brooks: acrescentar pessoas a um projecto atrasado, s o vai atrasar mais
Engenharia de Software
75

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Distribuio de Trabalho no Tempo


Apesar da produtividade ms e quebra de produtividade de 10% por canal de comunicao individual decrescer, a adio de mais elementos a Tamanho da Produtividade Produtividade Equipa Individual Total uma equipa (mais 1 500 500 manpower) permite 2 450 900 aumentar a produtividade 3 400 1200 total; 4 350 1400 5 300 1500 mas o crescimento da 5.5 275 1512 produtividade total vai 6 250 1500 crescendo medida que o 7 200 1400 8 150 1200 n de elementos da equipa Tudo leva o seu tempo: aumenta, atingindo um no podemos encurtar mximo (valor de A produtividade total indefinidadamente produtividade total mxima atinge-se para substituindo tempo por equipa com 5.5 pessoas ptima), decrescendo pessoas seguidamente.
5.5

Supe-se uma produtividade de 500 LDC/pessoa-

Engenharia de Software

76

Instituto Superior Politcnico de VISEU


Escola Superior de Tecnologia

Definio de Prazos
Distribuio do esforo pelos pacotes de actividades Utilizar a regra 40-20-40
40 - 50 % - Anlise e desenho 15 - 20 % - Codificao 30 - 40 % - Teste (O planeamento do projecto no deve implicar um esforo superior a 2-3 %)

Engenharia de Software

77