Engenharia de Software
Planeamento e Gestão de Projectos
Hélia Guerra
Departamento de Matemática
Universidade dos Açores
[email protected]
cronograma do projecto
• É usual que os clientes queiram respostas para as
seguintes perguntas
• Percebe os problemas e as minhas necessidades?
• É capaz de desenhar um sistema que resolva os meus
problemas e satisfaça as minhas necessidades?
• Quanto tempo demorará?
• Quanto custará?
2
cronograma do projecto
• O cronograma do projecto descreve o ciclo de
desenvolvimento do software
– enumerando as etapas do processo
– dividindo cada etapa em tarefas/actividades
discretas para serem executadas
• Considera as interações entre as actividades e estima a
duração de cada actividades, indicando as datas
planeadas para a sua realização
3
cronograma do projecto
• Ajuda a perceber as necessidades do cliente através da
listagem de todas as entregas
–Documentos
–Demonstrações de funções, subsistemas, fiabilidade,
desempenho e segurança
• Determina os marcos (milestones) e actividades para
produzir as entregas
4
marcos e actividades
• Actividade: tem lugar durante um período de tempo
• Marco: completação de uma actividade -- um ponto
particular no tempo
• Percursor: evento (ou conjunto de) que tem que
ocorrer para que uma actividade se inicie
• Duração: período de tempo necessário para
completar uma actividade
• Data de término: data em que uma actividade fica
pronta
5
cronograma do projecto
• O desenvolvimento de um projecto pode ser separado
em sucessivas fases, cada uma das quais composta por
passos que são compostos por actividades
6
Wbs e grafos de actividade
• Estrutura de Decomposição de Trabalho (Work
Breakdown Structure - WBS) é o processo de dividir o
projecto em tarefas manuseáveis e de as ordenar
logicamente, com o objectivo de assegurar uma
evolução suave entre elas
• Grafos de actividade mostram as dependencias entre as
actividades
–Vértices: marcos
–Arestas: actividades envolvidas
• Os grafos de actividade podem ter pesos com
informação sobre a duração7 das actividades
critical path method (cpm)
• É o menor tempo para completar um projecto
–Revela as actividades mais críticas que condicionam a
entrega do projecto a tempo
• Tempo real: duração estimada para a actividade
terminar
• Tempo disponível: tempo disponível na
calendarização para que a actividade seja completada
• Tempo de folga: diferença entre o tempo disponível e
o tempo real para a actividade
8
critical path method (cpm)
• Caminho crítico:
- a folga em cada nó é zero.
–a folga em cada vértice é zero
–não é único
• tempo de folga = tempo disponível – tempo real
= data de início mais tarde – data de início mais cedo
9
gráficos de gantt
• Representação gráfica do projecto que mostra cada
actividade como uma barra horizontal de comprimento
proporcional ao seu tempo de duração
10
histograma de recursos
• Mostra as pessoas que estão afectas ao projecto e as que
são necessárias para cada etapa do ciclo de vida
11
curva das despesas
12
equipa de desenvolvimento
actividades
–análise de requisitos
–desenho do sistema
–desenho do programa
–escrita do programa
–testes
–treino
–manutenção
–garantia da qualidade
• Há vantagens em afectar responsabilidades diferentes a
pessoas diferentes
13
equipa de desenvolvimento
escolha dos membros
• Capacidade para executar o trabalho
• Interesse no trabalho
• Experiência com aplicações, técnicas, linguagens,
ambientes de desenvolvimento similares
• Treino
• Capacidade para comunicar com os outros
• Capacidade para partilhar responsabilidades
14
EQuipa de desenvolvimento
Comunicação
• O desenvolvimento de um projecto é afectado por
–grau de comunicação
–capacidade de cada pessoa expressar as suas ideias
• Muitas falhas de software resultam de comunicação e
entendimento deficientes
15
EQuipa de desenvolvimento
Comunicação
• Para n pessoas no projecto existem n(n-1)/2 pares de
possíveis comunicações
16
reuniões (defeitos)
(Dressler 1995)
– objectivo pouco claro
– participantes não estão preparados
– elementos fundamentais chegam atrasados ou não comparecem
– a conversa desvia-se do objectivo
– participantes não discutem, apenas argumentam
– decisões tomadas não são implementadas
17
reuniões mais produtivas
(Dressler 1995)
– decidir bem quem deverá estar presente na reunião
– fazer uma agenda
– ter alguém a moderar as discussões
– ter alguém responsável por colocar em práticas as medidas
tomadas na reunião
– minimizar o número de reuniões e de participantes
18
estilos de trabalho
• Extrovertido: transmite os seus pensamentos
• Introvertido: pede sugestões
• Intuitivo: baseia as decisões em sentimentos
• Racional: baseia as decisões em factos e opiniões
19
estilos de comunicação e
de decisão
20
estilos de trabalho
• O estilo de trabalho determina o estilo de comunicação
• Afecta a interação entre clientes, equipa de
desenvolvimento e utilizadores
21
organização do projecto
• Depende de
– conhecimentos e estilo de trabalho dos membros da
equipa
– número de pessoas na equipa
– gestão de estilos dos clientes e da equipa de
desenvolvimento
22
organização do projecto
Chief Programmer Team
–uma única pessoa (chefe ou líder) é responsável pelo
desenvolvimento do trabalho e pela coordenação do
trabalho dos restantes membros da equipa
–Cada membro da equipa comunica com frequencia com o
chefe mas não necessariamente com os outros membros
23
organização do projecto
egoless( Democrática ou plana)
–Não tem líder e todos os membros da equipa têm o
mesmo nível de responsabilidade
–todos os assuntos são votados democraticamente
– o código é partilhado por todos
24
organização do projecto
• Que modelo de organização se deve escolher?
• Fazer uma boa gestão de projecto significa encontrar o
equilibrio entre a estrutura e a criatividade
25
estimação de custos
• A estimação de custos é um dos aspectos essenciais no
planeamento e na gestão do projecto
• Tipos de custos
–facilidades: espaço, hardware, mobiliário, telefone,
papel, etc
–métodos e ferramentas: software, ferramentas CASE
–pessoal (esforço): a maior componente dos custos
• A estimação de custos deve ser feita durante o ciclo de
vida do projecto, o mais cedo possível
26
estimação de custos
(Boehm 1995)
• A incerteza logo no início do projecto pode afectar as
estimativas de custos e da dimensão do projeto
27
causas de uma estimação
deficiente (Lederer e Prasad 1992)
• Pedidos frequentes de alteração de requisitos
• Pouca atenção prestada nas tarefas
• Utilizadores não percebem os requisitos
• Análise insuficiente ao fazer a estimativa
• Falta de coordenação entre os membros da equipa no
processo de desenvolvimento do sistema
• Falta de orientação ou de método adequado para
efectuar a estimativa
28
factores que influenciam a
estimação
–Complexidade do sistema proposto
–Integração com outros sistemas já existentes
–Complexidade do programa
–Dimensão do sistema em termos de número de
funções ou de programas
–Capacidade dos membros da equipa
–Experiencia dos membros da equipa com a aplicação,
a linguagem de programação e o hardware
–SGBD
–Número de elementos da equipa
29
estimação do esforço
abordagens
• Top-down
– A estimação é feita a partir do nível do sistema, tendo
em conta a funcionalidade total
• Bottom-up
– A estimação é feita a partir de uma decomposição do
sistema em componentes, adicionando a estimação
relativa ao desenvolvimento de cada componente
30
estimação do esforço
Tipo de métodos
• Experiência de peritos
– Técnica de Delphi
– Modelo de Wolverton
• Métodos algoritmicos: E = (a + bSc) m(X)
– Walston e Felix
– Bailey e Basili
– Construtive Cost Model (COCOMO): versão
COCOMO II é a versão mais actual
• Aprendizagem automática
31
experiencia dos peritos
Top-down ou bottom-up
Analogia com outros projectos: pessimista (x),
optimista (y), média (z); estimação = (x + 4y + z)/6
Técnica de Delphi: baseda na média de valores
“secretos” estimados por peritos
32
modelo de wolverton
Considera existirem dois factores que influenciam a
produtividade: o problema ser conhecido (O) ou novo
(N) e o grau de dificuldade ser fácil (E) ou moderado
(M)
a dimensão de cada módulo é estimada pelo número
de linhas de código
Type of software
Control
Input/output
Pre/post processor
Algorithm
Data management
Time -critical
OE
21
17
16
15
24
75
OM
27
24
23
20
31
75
Difficulty
OH NE
30 33
27 28
26 28
22 25
35 37
75 75
NM
40
35
34
30
46
75
NH
49
43
42
35
57
75
33
modelo de waltson e felix
1. Customer interface complexity
Inclui um índice
de produtividade
na equação
E = 5,25 S^0,91
Considera
existirem 29
factores que
podem afectar a
produtividade ( 1
aumenta, 0
diminui)
2. User participation in requirements
definition
3. Customer -originated program
design changes
4. Customer experience with the
application area
5. Overall personnel experience
6. Percentage of development
programmers who participated in the
design of functional specifications
7. Previous experience with the
operational computer
8. Previous experience with the
programming language
9. Previous experien ce with
applications of similar size and
complexity
10. Ratio of average staff size to
project duration (people per month)
11. Hardware under concurrent
development
12. Access to development computer
open under special request
13. Acc ess to development computer
closed
14. Classified security environment
for computer and at least 25% of
programs and data
34
15. Use of structured programming
16. Use of design and code
inspections
17. Use of top -down development
18. Use of a chief programmer team
19. Overall complexity of code
20. Complexity of application
processing
21. Co mplexity of program flow
22. Overall constraints on program’s
design
23. Design constraints on the
program’s main storage
24. Design constraints on the
program’s timing
25. Code for real -time or interactive
operation or for execution under
severe time constraints
26. Percentage of code for delivery
27. Code classified as
nonmathematical application and
input/output formatting programs
28. Number of classes of items in the
database per 1000 lines of code
29. Number of pages of delivered
documentation per 1000 line s of code
modelo de bailey e basili
E = 5.5 + 0,73 S ^1,16
Cada valor na tabela é classificado entre ausente (0) a
muito importante (5)
Total methodology
(METH)
Tree charts
Top -down design
Cumulative complexity
(CPLX)
Customer interface
complexity
Application complexity
Formal documentation
Program flo w complexity
Chief programmer
teams
Formal training
Formal test plans
Internal communication
complexity
Database complexity
External communication
complexity
Customer -initiated
program design changes
Design forma lisms
Code reading
Unit development
folders
Cumulative experience
(EXP)
Programmer
qualifications
Programmer machine
experience
Programmer language
experience
Programmer application
experience
Team experience
35
cocomo II
A equação do esforço (E) calcula o número de pessoasmeses necessárias para o projecto
E = b S^c m(X), onde bS^c é o valor estimado inicial e
m(X) é o vector de informação cost driver
O modelo de custos tem três grandes etapas (protótipo
de interfaces, desenho, programação)
Assenta na premissa de que a “granulosidade do
modelo de estimação de custos precisa ser consistente
com a granulosidade da informação disponível para
suportar a estimação”(USC 1997)
36
cocomo ii
Pontos de aplicação calculados com base no número
de ecrãns e relatórios
For Screens
For Reports
Number and source of data tables
Number and source of data tables
Number of
Total < 4
Total < 8
Total 8+
Number of
Total < 4
Total < 8
Total 8+
views
(<2
(2-3
(>3
sections
(<2
(2-3
(>3
contained
server,
server,
server, >5
contained
server,
server, 3-
server,
<3
3-5
client)
<3
5 client)
>5
client)
client)
<3
simple
simple
medium
0 or 1
simple
simple
medium
3-7
simple
medium
difficult
2 or 3
simple
medium
difficult
Object type
client)
Simple
Medium
Screen
1
2
Report
2
5
8
3GL component
-
-
10
client)
Difficult
3
37
cocomo ii
Calcula o factor de produtividade com base na
experiencia e na capacidade de trabalho
Category
Very low
Low
Nominal
High
Very high
Meaning
Edit, code, debug
Simple front -end, back -end CASE, little integration
Basic life -cycle tools, moderately integrated
Strong, mature life -cycle tools, moderately
integrated
Strong, mature, proactive life-cycle tools, well integrated with processes, methods, reuse
38
modelo de aprendizagem com rede
neuronal
Rede neuronal utilizada por Shepperd para estimar o
esforço
Rede treinada com dados conhecidos de projectos
anteriores
39
gestão de riscos
• Um risco é um evento indesejado que causa prejuízo
–Impacto do risco: prejuízo associado ao risco
–Probabilidade do risco ocorrer
–Controlo do risco: o que se pode fazer para
minimizar o impacto do risco
–Exposição do risco = (prob. risco) x (impacto risco)
• Fontes de risco: genéricos e específico do projecto
40
Actividades de gestão de riscos
• Avaliar o risco
- Identificar o risco
- Analisar o risco
- Atribuir prioridade aos riscos
• Controlar o risco
- reduzir o risco
- planear a gestão do risco
- resolver o risco
41
os 10 maiores riscos
(Boehm et al. 1995)
1.Falhas na equipa
2.Cronogramas e orçamentos irrealistas
3.Desenvolvimento de funções incorrectas
4.Desenvolvimento interfaces incorrectas
5.Tentar a solução ideal
6.Alterações contínuas aos requisitos
7.Falhas nas tarefas subcontratadas
8.Falhas na reutilização de componentes
9.Falhas no desempenho em tempo real
10.Exceder a capacidade da 42tecnologia actual
Plano do projecto
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Âmbito do projecto
Cronograma do projecto
Organização da equipa de desenvolvimento
Descrição técnica do sistema
Procedimentos e standards do projecto
Plano de garantia de qualidade
Plano de gestão da configuração
Plano de documentação
Plano de gestão dos dados
Plano de gestão dos recursos
Plano de testes
Plano de treino
Plano de gestão dos riscos
43
Plano de manutenção
Resumo
• Conceitos importantes na gestão de projectos
–Planificação do projecto
–Estimação dos custos e cronograma
–Gestão dos riscos
–Organização da equipa
• A planificação do projecto envolve sugestões de todos
os membros da equipa
• Ao fazer o cronograma é preciso ter em conta que ao
aumentar a dimensão da equipa, as comunicações entre
os membros também aumentam
44
Download

pdf-2p - Hélia Guerra - Universidade dos Açores