Beruflich Dokumente
Kultur Dokumente
SO PAULO
2006
rea de Concentrao:
Sistemas Digitais
Orientador:
Prof. Dr. Reginaldo Arakaki
SO PAULO
2006
rea de Concentrao:
Sistemas Digitais
Orientador:
Prof. Dr. Reginaldo Arakaki
SO PAULO
2006
FICHA CATALOGRFICA
Ribeiro,
Ribeiro,
Andre
Andre
LuizLuiz
DiasDias
Um Um
roteiro
roteiro
parapara
a reduo
a reduo
de tempo
de tempo
no desenvolvimento
no desenvolvimento
de de
projetos
projetos
de software
de software
/ A.L.D.
/ A.L.D.
Ribeiro.
Ribeiro.
-- So
-- So
Paulo,
Paulo,
2006.
2006.
p. 124.
p.
Dissertao
Dissertao
(Mestrado)
(Mestrado)
- Escola
- Escola
Politcnica
Politcnica
da Universidade
da Universidade
de So
de So
Paulo.
Paulo.
Departamento
Departamento
de Engenharia
de Engenharia
de Computao
de Computao
e e
Sistemas
Sistemas
Digitais.
Digitais.
1.Engenharia
1.Engenharia
de software
de software
2.Desenvolvimento
2.Desenvolvimento
de software
de software
I.Universidade
I.Universidade
de So
de So
Paulo.
Paulo.
Escola
Escola
Politcnica.
Politcnica.
Departamento
Departamento
de Engenharia
de Engenharia
de Computao
de Computao
e Sistemas
e Sistemas
Digitais
Digitais
II.t. II.t.
AGRADECIMENTOS
Agradeo a Deus pela vida e sade em todas as minhas realizaes.
minha querida esposa Patrcia Salles Souza Ribeiro e s minhas filhas Andreza e
Natlia pelo companheirismo, compreenso e constante incentivo durante toda esta
etapa de nossas vidas.
RESUMO
A realizao de projetos dentro do prazo estabelecido um fator comum em
diversas reas de produo como a engenharia civil, de aviao, qumica,
transportes, indstria em geral, entre outras.
No entanto, na engenharia de software, a questo do tempo na construo de um
produto um desafio de processo a ser superado em cada novo projeto. O
cumprimento de prazos no desenvolvimento de software to crtico que o prprio
controle de atrasos no ciclo de produo um fator a ser considerado na anlise de
reduo do tempo de desenvolvimento.
A complexidade do ambiente de software, a competitividade de mercado, as
mudanas de requisitos constantes durante o projeto e o tempo disponvel cada vez
mais restrito, aumentam as chances de insucesso quando analisado o indicador de
tempo na produo de software.
O objetivo deste trabalho reunir e organizar as prticas e tcnicas de engenharia
de software em um roteiro que permita a reduo do tempo no desenvolvimento do
software. Neste roteiro, descrita a utilizao organizada e planejada das prticas
de engenharia de software que auxiliam no planejamento, na criao da arquitetura
de soluo, na definio da infra-estrutura tcnica para reutilizao e a utilizao da
engenharia simultnea, visando proporcionar ganhos reais no tempo de produo do
software e no aumento da produtividade.
ABSTRACT
The completion of software project within schedule is a common goal in several
industries like building engineering, aviation, chemical, transport, wares and so on.
However, in software engineering, the schedule is a process challenge from the
beginning of each new project. The time is so critical that the delay control is an
analysis point for cycle time reduction in software development.
The complex environment, the pressure to reduce time-to-market, frequent
requirements changes during the project life-cycle, increase the failure chance of
software projects when we analyze the time indicator in the software development
process.
The dissertation goal is to meet and to organize of software engineering practices
and techniques in an organized roadmap aiming cycle time reduction in software
development. In this roadmap, the practices are organized to help software planning,
solution architecture, component based development definition, to promote reuse
and concurrent engineering with purpose to reduce cycle time software development
and improve productivity.
LISTA DE FIGURAS
FIGURA 1.1 REPRESENTAO GRFICA DA ORGANIZAO DO TRABALHO .........................19
FIGURA 2.1 GRUPO DE PROCESSOS DE PLANEJAMENTO DO PMBOK (PMI, 2004) ......... 25
FIGURA 2.2 INTERAES ENTRE OS PROCESSOS DE CONTROLE DO PMBOK
(PMI, 2004)...................................................................................................26
FIGURA 2.3 ATIVIDADES DE PLANEJAMENTO E CONTROLE DE PROJETO
(KERZNER, 2003) ..........................................................................................28
FIGURA 2.4 MODELO CASCATA .........................................................................................30
FIGURA 2.5 MODELO PROTOTIPAO EVOLUTIVA (MCCONNELL, 1996) ..........................31
FIGURA 2.6 MODELO ESPIRAL DE BOEHM (PRESSMAN, 2005) ......................................... 31
FIGURA 2.7 MODELO ITERATIVO (PRESSMAN, 2005) ........................................................33
FIGURA 3.1 PAPEL DA ARQUITETURA DE SOFTWARE (GARLAN, 2000) .............................37
FIGURA 3.2 ATIVIDADES DO PROJETO DE ARQUITETURA (HOFMEISTER ET AL., 2005)...... 39
FIGURA 3.3 DESENVOLVIMENTO TIMEBOX (MCCONNELL, 1996) ...................................... 42
FIGURA 3.4 CICLO DE PROTOTIPAO ADAPTADO (LUQI, 1989) ...................................... 44
FIGURA 3.5 REPRESENTAO DE UM PARTICIONAMENTO ..................................................45
FIGURA 3.6 DESENVOLVIMENTO BASEADO EM COMPONENTES (PRESSMAN, 2005) ......... 47
FIGURA 3.7 OBJETIVOS DA ENGENHARIA SIMULTNEA (DWIVEDI ET AL., 1990)................53
FIGURA 4.1 FATORES DE REDUO DE TEMPO (BLACKBURN; SCUDDER;
W ASSENHOVE, 2000) ....................................................................................59
FIGURA 4.2 ALOCAO DE TEMPO POR FASE (BLACKBURN; SCUDDER;
W ASSENHOVE, 2000) ....................................................................................60
FIGURA 5.1 PRTICAS DE DESENVOLVIMENTO EM ENGENHARIA DE SOFTWARE
(MCT,2002) ..................................................................................................65
FIGURA 5.2 PRTICAS DE GESTO DE PROJETOS EM ENGENHARIA DE SOFTWARE
(MCT, 2002) .................................................................................................66
FIGURA 5.3 UTILIZAO DAS PRTICAS DE ENGENHARIA DE SOFTWARE DO ROTEIRO
PROPOSTO .....................................................................................................70
FIGURA 6.1 MAPEAMENTO DOS CONCEITOS QUE IMPACTAM NA REDUO DE TEMPO........ 77
FIGURA 6.2 MAPEAMENTO DOS ELEMENTOS QUE COMPEM O ROTEIRO PROPOSTO ....... 79
FIGURA 6.3 FLUXO DE ATIVIDADES DO ROTEIRO ............................................................... 87
LISTA DE TABELAS
TABELA 2.1 PARMETROS DE CAPACIDADE DOS CICLOS DE VIDA ADAPTADO
(MCCONNELL, 1996) .....................................................................................33
TABELA 3.1 COMPARAO DAS ESTRATGIAS DE REUSO (RAVICHANDRAN E
ROTHENBERGER, 2003).................................................................................50
TABELA 3.2 ELEMENTOS CHAVES DA ENGENHARIA SIMULTNEA ADAPTADO
(KARANDIKAR ET AL, 1993) ............................................................................ 53
TABELA 4.1 OBJETIVOS PARA REDUO DO CICLO DE DESENVOLVIMENTO
(COLLIER; COLLOFELLO, 1995). ....................................................................58
TABELA 5.1 PRTICAS ENGENHARIA DE SOFTWARE SEPIN (MCT, 2002).................64
TABELA 5.2 PERFIL DE QUALIDADE DAS EMPRESAS PARTICIPANTES DA ENQUETE ............ 69
TABELA 5.3 PRTICAS DE GERENCIAMENTO DE PROJETOS ..............................................69
TABELA 5.4 MODELOS DE CICLOS DE VIDA UTILIZADOS ....................................................70
TABELA 5.5 NVEL DE NO APLICAO DAS PRTICAS DE ENGENHARIA DE SOFTWARE ...71
TABELA 5.6 RESULTADO DA APLICAO DA PRTICA DE PROTOTIPAO ..........................71
TABELA 5.7 RESULTADO DA APLICAO DAS PRTICAS DE COMPONENTIZAO E
REUSO ........................................................................................................... 72
TABELA 5.8 RESULTADO DA APLICAO DA PRTICA DE ENGENHARIA SIMULTNEA ......... 72
TABELA 6.1 QUADRO COMPARATIVO ENTRE AS ABORDAGENS DE REDUO DE TEMPO ...75
TABELA 6.2 COMPARATIVO ENTRE OS OBJETIVOS DAS ABORDAGENS DE REDUO
DE TEMPO ...................................................................................................... 76
TABELA 6.3 TCNICAS E PRTICAS QUE CONTRIBUEM PARA A REDUO DE TEMPO ........ 76
TABELA 6.4 MAPEAMENTO DAS PRTICAS E TCNICAS COM OS OBJETIVOS DE
REDUO DE TEMPO......................................................................................78
TABELA 6.5 PONTOS FORTES E PONTOS FRACOS NO USO DA ENGENHARIA
SIMULTNEA...................................................................................................85
TABELA 6.6 PRODUTOS RESULTANTES DA APLICAO DO ROTEIRO .................................99
TABELA 7.1 RESULTADOS OBTIDOS COM A APLICAO DO ROTEIRO NO PROJETO 1 ...... 104
TABELA 7.2 RESULTADOS OBTIDOS COM A APLICAO DO ROTEIRO NO PROJETO 2 ...... 106
TABELA 7.3 AES CORRETIVAS PARA TRATAR AS DIFICULDADES ENCONTRADAS
COM A EQUIPE DE PROJETO ......................................................................... 109
TABELA 7.4 AES CORRETIVAS PARA TRATAR AS DIFICULDADES ENCONTRADAS
COM O CLIENTE ............................................................................................ 110
SUMRIO
1 INTRODUO ...............................................................................................................13
Objetivo do Captulo ....................................................................................................... 13
1.1. O Problema do Tempo no Desenvolvimento de Software ..............................13
1.2. Motivao ..................................................................................................................15
1.3. Justificativa do Trabalho........................................................................................16
1.4. Objetivos do Trabalho ............................................................................................18
1.5. Organizao do Trabalho .......................................................................................18
1.6. Notaes e Convenes Utilizadas...................................................................... 20
2 O PLANEJAMENTO DE PROJETOS DE SOFTWARE............................................ 21
Objetivo do Captulo ....................................................................................................... 21
2.1. A Importncia do Planejamento de Projetos......................................................21
2.2. Monitoramento e Controle do Projeto .................................................................25
2.3. Planejamento do Ciclo de Vida para Desenvolvimento do Software............ 29
2.4. Concluses do Captulo .........................................................................................34
3 CONCEITOS DAS TCNICAS E PRTICAS DE ENGENHARIA DE
SOFTWARE ...................................................................................................................35
Objetivo do Captulo ....................................................................................................... 35
3.1. A Arquitetura de Software......................................................................................36
3.2. Desenvolvimento Timebox ....................................................................................41
3.3. Prototipao do Sistema ........................................................................................43
3.4. Particionamento do Software................................................................................44
3.5. Desenvolvimento Baseado em Componentes e Reutilizao ........................45
3.6. Engenharia Simultnea...........................................................................................51
3.7. Concluses do Captulo .........................................................................................54
13
___________________________________________________________________
1 INTRODUO
Objetivo do Captulo
desenvolvimento
de
software
continuam
enfrentando
problemas
na
14
funcionalidade,
confiabilidade,
usabilidade,
eficincia,
15
1.2. Motivao
16
17
Este trabalho muito significante para a rea por servir de base para outros esforos
sobre a reduo de tempo de desenvolvimento.
O Desenvolvimento Rpido Evolutivo (Rapid Evolutionary Development) baseado
no desenvolvimento evolutivo tradicional aliado ao forte uso da prototipao, o que
significa interao com o cliente e administrao das alteraes de requisitos. Os
benefcios deste modelo so: a reduo dos riscos e a produo de resultados
tangveis em tempo reduzido.
Outros trabalhos significantes nesse tema tratam alguns aspectos importantes como
a diminuio dos canais de comunicao atravs de equipes pequenas (at 15
pessoas), a reduo do nvel de comunicao formal no projeto e a produo da
documentao mnima necessria para o projeto como fatores que auxiliam na
reduo do tempo de desenvolvimento do software (Clyncy, 2003).
Collier e Collofello (1995) descrevem que a questo de reduo de tempo est
relacionada s caractersticas ambientais e do produto a ser construdo. As
caractersticas ambientais incluem o modelo de processo, a disponibilidade de
recursos,
mtodos,
procedimentos
as
prticas
utilizadas
durante
18
19
Captulo 1
Introduo
Captulo 2
O Planejamento de
Projetos de Software
Captulo 3
Conceitos das
Tcnicas e Prticas
de Engenharia de
Software
Captulo 5
Captulo 4
As Abordagens para
Avaliaes sobre a
a Reduo de Tempo
Utilizao de Prticas
no Desenvolvimento
e Tcnicas de
de Software
Engenharia
Captulo 6
O Roteiro para
Reduo de Tempo
de Desenvolvimento
de Software
Captulo 7
Aplicao do Roteiro
em Projetos de
Software
Captulo 8
Consideraes Finais
20
21
___________________________________________________________________
2 O PLANEJAMENTO DE PROJETOS DE
SOFTWARE
Objetivo do Captulo
22
23
Planejamento
de
Recursos
Humanos:
Identifica
os
papis
24
Os processos mostrados na Figura 2.1 podem ser executados tantas vezes quantas
forem necessrias, dentro de cada fase do projeto (PMI, 2004), pois so interativos e
devem ser realizados durante todo o ciclo de vida do projeto. Entretanto, os
processos so referncias para a elaborao do planejamento, no sendo
necessria a execuo de todos os processos para a concluso do planejamento.
Segundo Kerzner (2003), um planejamento sistemtico e aderente realidade de
cada projeto permite s organizaes atingirem os objetivos e contribui para:
25
Embora o planejamento seja essencial para o projeto, ele no deve se tornar uma
atividade burocrtica que demande esforo considervel e consumo de tempo
excessivo da equipe do projeto durante sua execuo. (Boehm; Turner, 2004).
26
27
28
Embora existam doze processos de controle, para cada projeto devem ser definidos
quais desses processos devem ser aplicados no ciclo de desenvolvimento do
software, considerando suas caractersticas especficas e o ambiente da
organizao que o desenvolve.
Um processo de planejamento e controle resumido apresentado por Kerzner
(2003) para se estabelecer um nvel adequado de controle sobre o projeto, onde as
seguintes atividades mnimas devem ser realizadas durante sua execuo e so
ilustradas na Figura 2.3.
As caixas superiores representam as atividades de planejamento e as caixas
inferiores identificam as atividades de controle.
29
30
Anlise
Projeto
Implementao
Testes
31
Requisitos
Iniciais
Elaborao do
Prottipo Inicial
Refinamento do
Prottipo at a
aceitao
Implementao e
testes
32
(Pinna,
2004).
Os
requisitos
vo
sendo
detalhados
33
Iterao 1
Anlise
Projeto
Iterao 2
Primeira
Entrega
Codificao
Teste
Projeto
Codificao
Anlise
Iterao 3
Anlise
Projeto
Teste
Segunda
Entrega
Codificao
Teste
Terceira
Entrega
Tempo decorrido
A definio do modelo adequado para cada projeto depende de vrios fatores como
as caractersticas do projeto, as necessidades do cliente e o tempo disponvel para
realizao do trabalho.
A partir dos conceitos apresentados sobre os modelos, alguns parmetros podem
ser avaliados contra as foras e fraquezas de cada modelo, conforme demonstrado
na Tabela 2.1 adaptada da proposta de McConnell (1996).
Tabela 2.1 Parmetros de Capacidade dos Ciclos de Vida adaptado (McConnell, 1996)
Capacidade do Modelo
Cascata
Prototipao
Espiral
Iterativo
Requisitos Instveis
Fraco
timo
timo
timo
Arquitetura Indefinida
Fraco
Razovel
timo
timo
Gerenciamento Riscos
Fraco
Razovel
timo
timo
Flexibilidade de Adequao s
Fraco
timo
Razovel
timo
Fraco
timo
timo
timo
Razovel
Razovel
timo
Razovel
Nvel de Planejamento
Razovel
Razovel
timo
timo
timo
timo
Razovel
Razovel
mudanas
Visibilidade de Progresso
Velocidade de Desenvolvimento
34
35
___________________________________________________________________
36
37
Requisitos
Arquitetura
Software
Cdigo
Domnio
tcnico
do
negcio
maturidade
do
processo
de
38
Embora esses fatores crticos tenham sido citados por Boehm em 1994, os seus
conceitos permanecem atuais e aplicveis por se tratarem de fundamentos para a
verificao dos ganhos obtidos com a aplicao da arquitetura de software, visando
atingir os seguintes objetivos:
39
Sntese
Arquitetural
Requisitos Arquiteturais
Solues Arquiteturais
Significantes
Candidatas
Interesses
Arquiteturais
Anlise
Arquitetural
Requisitos Arquiteturais
Significantes
Avaliao
Arquitetural
Arquitetura
Validada
Contexto
a) Interesses Arquiteturais:
So os requisitos no funcionais do sistema tais como: desempenho,
confiabilidade, segurana, distribuio e escalabilidade. O grau de variao
desses requisitos direciona e influencia as decises tcnicas que devem ser
observadas durante a anlise arquitetural.
b) Contexto:
Determinam
conjunto
de
requisitos
relativos
ao
ambiente
de
40
g) Avaliao Arquitetural:
Avalia as solues alternativas apresentadas contra os requisitos mais
significativos da arquitetura com o objetivo de definir a que melhor atende s
necessidades do projeto. Os cenrios e os prottipos devem ser refinados
atravs da construo de provas de conceitos que permitam a avaliao dos
resultados das solues.
41
h) Arquitetura Validada:
Consiste
na
escolha
da
arquitetura
consistente
com
os
requisitos
O desenvolvimento timebox uma prtica que auxilia a manter o foco nas principais
caractersticas do software, evidenciar o senso de restrio de tempo equipe do
projeto e reduzir o tempo de desenvolvimento do software (McConnell, 1996).
O procedimento central desta prtica enquadrar os requisitos centrais do projeto
ao tempo disponvel, enquanto os demais requisitos so incorporados em outros
timeboxes com menor prioridade. A prioridade destes requisitos definida
conjuntamente pelo cliente e pela equipe do projeto, permitindo a reduo do tempo
de desenvolvimento.
A aplicao dessa prtica requer a utilizao conjunta com a prtica de prototipao,
alm de necessitar do envolvimento significativo do usurio final e de revises
constantes da equipe do projeto. Aps a construo, o sistema avaliado pelo
cliente, podendo ser aceito completamente ou retornar para ajustes
de
42
Requisitos
Desenvolvimento Timebox
Sistema
Prototipado
Desenvolver o
Prottipo
Revises do
Cliente
Solicitao Alteraes
Sistema Rejeitado
Sistema
Avaliado
Sistema
Aceito
43
44
Deterrminar os
requisitos
Requisitos
No
Validao
usurio
Construir o
Prottipo
Prottipo
Apresentar o
Prottipo
Sim
Construir a
partio do
sistema
Sistema
Pronto
45
Projeto
X
Partio 1
Partio 2
Sub-Partio
2.1
Partio "n"
Sub-Partio
2.2
46
47
Identificar os
componentes
necessrios
Construir o
software
Procurar
Componentes na
biblioteca
Armazenar novos
Componentes na
biblioteca
Extrair os
componentes
disponveis
Construir novos
componentes
48
49
desenvolvedores
procurar
os
componentes
no
mercado,
50
Caixa-Preta
Caixa-Branca
Interno
Taxa de
reuso
Flexibilidade
Escopo do
reuso
Custo de
Construo
Custo de
Uso
Qualidade
Tempo de
Retorno
Repositrio
Mercado
Provavelmente, menor
taxa de reuso pela
necessidade de encontrar
um componente exato.
Flexibilidade limitada.
Componentes adquiridos
do mercado. Uso
diversificado.
Maior custo de construo
para parametrizao das
interfaces.
Alto custo de busca e baixo
custo de customizao.
Conhecida pela
organizao.
Retorno somente aps
existir massa crtica no
repositrio.
Alta taxa de reuso para
cobrir o investimento.
Crescimento linear do
tamanho do repositrio.
Controle de verses
importante e mais simples.
Limitada necessidade de
um repositrio local.
Responsabilidade de
verses do vendedor.
Custo moderada de
procura e alto custo de
customizao.
Conhecida pela
organizao.
Retorno somente aps
existir massa crtica no
repositrio.
Taxa de reuso moderada
para cobrir o
investimento.
Crescimento exponencial
do tamanho do
repositrio. Controle de
verses essencial.
51
O termo engenharia simultnea vem sendo aplicado desde o final dos anos 80 no
processo de desenvolvimento de software, onde o paralelismo das atividades e a
integrao funcional so partes do processo de desenvolvimento. As idias atrs do
conceito da engenharia simultnea so simples, mas produzem resultados
significativos no tempo de produo do software (Smith, 1997) e estabelece
mecanismos de melhoria de desempenho para as empresas (Brookes; BackHouse,
2000).
Segundo Amundsen e Hutchison (1990), engenharia simultnea uma abordagem
sistemtica para criar um produto que considera todos os elementos do ciclo de vida
de desenvolvimento. Engenharia simultnea no a eliminao arbitrria de alguma
fase do ciclo de vida, mas a realizao de atividades em paralelo para a otimizao
do tempo de produo.
Para BlackBurn, Scudder e Wassenhove (2000) a engenharia simultnea o
gerenciamento de tcnicas para reduzir o time-to-market e aumentar a produtividade
no desenvolvimento de um produto, atravs da execuo de tarefas em paralelo por
diferentes grupos e do fluxo controlado de informaes para suportar as equipes de
desenvolvimento.
O suporte e a flexibilidade de desenvolvimento fornecido pela arquitetura e pelo
desenvolvimento baseado em componentes so essenciais para se alcanar um alto
grau de execuo de tarefas concorrentes, atingido atravs da estruturao do
sistema de forma mais independente possvel entre as diversas parties, da diviso
do software em camadas e do aumento do nvel de reutilizao de componentes.
52
53
Reduo de
custos
Reduo do tempo
de
desenvolvimento
Eliminao de
gastos
Aumento da
qualidade
Melhoria
Contnua
Engenharia
Simultnea
Resultados
Tangveis
onde alguns
elementos
chaves
precisam
Requisitos
-
Sistema de Gerenciamento
Gerenciamento de riscos
Prototipao
Utilizao de ferramentas
Adoo de tcnicas e prticas apropriadas
Habilidade de responder as alteraes
Foco no Processo
Estratgia do projeto
Agilidade
Disciplina
ser
54
55
___________________________________________________________________
56
Desenvolvimento
Rpido
Evolutivo
(Rapid
Evolutionary
Development)
57
58
Tabela 4.1 Objetivos para Reduo do Ciclo de Desenvolvimento (Collier; Collofello, 1995).
Caractersticas Ambientais
Caractersticas do produto
Objetivos
Reuso de Software
Maximizao do reuso
para o repositrio
Alteraes de Requisitos
Determinar as interdependncias
Parties independentes
Reduo da complexidade
complexidade
Gerenciamento de Riscos
o grau de impacto
riscos
Produtividade Pessoal
Nenhum impacto
Disponibilidade de Recursos
Nenhum impacto
Validao e Verificao
Qualidade
Determinar os efeitos do
Garantia de correo e
retrabalho
completeza
Determinar os efeitos do
Garantia da qualidade
retrabalho
Estratgia de Integrao
Baixo acoplamento
Outro estudo relacionado reduo de tempo foi realizado por Blackburn, Scudder e
Wassenhove em um levantamento realizado entre 1996 e 1999, com 145 empresas
de desenvolvimento de software nos Estados Unidos, Europa e Japo, onde foram
identificados onze fatores que auxiliam na reduo do tempo de desenvolvimento de
software, apresentados na Figura 4.1.
Nesse estudo, as empresas foram divididas em dois grupos: um grupo com as
empresas consideradas rpidas (diminuram em mais de 25% o tempo de
desenvolvimento
nos
desenvolvimento normal.
ltimos
cinco
anos)
empresas
com
tempo
de
59
Eq
Tr
ei
na
C
om
da
un
ic
a
Es
o
pe
c
.In
G
es
ici
ta
al
o
Pr
oj
et
o
En
Te
g
st
Si
e
m
ul
t
ne
a
M
en
R
or
e
Re uso
tra
ba
Pr
lh
ot
Fe
o
ot
rr
ip
am
a
en
o
ta
sC
Pa
r ti
AS
ci
E
on
am
en
to
Grau Importncia
4
3,5
3
2,5
2
1,5
1
0,5
0
60
produtividade.
Outra avaliao realizada por este estudo foi verificar o relacionamento entre a
velocidade do desenvolvimento e a alocao do tempo em cada fase do projeto.
O resultado ilustrado no Figura 4.2, onde possvel observar que as empresas
consideradas mais rpidas consumiram mais tempo nas fases iniciais que nas fases
subseqentes, exceto na fase de codificao.
Alocao de Tempo por Fase de Projeto
% Dedicao
30
25
20
15
10
5
Te
st
e/
In
te
g.
C
od
ifi
ca
P
ro
je
to
P
la
ne
ja
m
en
to
R
eq
ui
si
to
s
0
Desenv. Rpido
Desenv. Lento
Figura 4.2 Alocao de Tempo por Fase (Blackburn; Scudder; Wassenhove, 2000)
61
necessidades,
produzir
especificaes
sem
ambigidades
elaborar
um
62
63
___________________________________________________________________
64
302
70,10
298
69,10
Especificao de projetos
279
64,70
Especificao de requisitos
262
60,80
Especificao de programas
261
60,60
244
56,60
Estimativa de custos
237
55,00
232
53,80
Prototipao
220
51,00
Estimativa de esforo
197
45,70
Mtodos estruturados
173
40,10
173
40,10
167
38,70
163
37,80
Estimativa de tamanho
125
29,00
Gerncia de requisitos
105
24,40
Gerncia de configurao
101
23,40
Engenharia da informao
92
21,30
Gerncia de risco
51
11,80
Gesto de mudana
45
10,40
35
8,1
65
100
90
80
70
60
50
40
30
20
10
0
70,1 69,1
64,7 60,8 60,6
56,6
55
53,8 51
45,7
40,1
M
od
el
ag
em
C
de
on
Es
tro
da
pe
do
le
ci
de
s
fic
a
ve
Es
o
rs
pe
o
de
ci
f
p
i
ca
Es
ro
pe
je
to
o
ci
s
re
fic
qu
a
In
i
si
o
te
to
pr
rfa
s
o
ce
gr
a
co
m
m
as
Es
o
tim
u
su
at
iv
r
a
io
de
cu
st
M
os
t
od
os
P
O
Es
O
tim roto
tip
at
iv
a
M
a
o
t
de
od
es
os
fo
es
r
tr u
o
tu
ra
do
s
% Utilizao
66
m
a
hu
JA
D
5,8
Es
t
Pl
an
ej
. fo
Ne
n
co
dr
pa
cr
t i
ca
e
m
as
lis
e
No
r
An
s
nj
rm
un
al
im
ta
de
at
iva
te
st
de
G
es
er
t
a
n
m
G
c
an
er
n ia r
ho
eq
cia
ui
sit
En con
fig os
g.
ur
Da
a
i
n
o
G
f
or
er
m
n
a
G
cia
es
t
de o
o
ris
de
co
m
ud
an
a
% Utilizao
100
90
80
70
60
50 40,1 38,7 37,8
40
29
30
20
10
0
Entre os meses de novembro de 2005 e janeiro de 2006 foi realizada pelo autor uma
enquete com as empresas de desenvolvimento de software nos estados de So
Paulo, Rio de Janeiro, Minas Gerais e Distrito Federal para avaliar o nvel de
utilizao das prticas e tcnicas do roteiro proposto por este trabalho.
67
O objetivo desta enquete foi avaliar o nvel de conhecimento e grau de aplicao das
tcnicas e prticas de engenharia de software, visando consolidar seus conceitos e
verificar sua efetividade na reduo do tempo no desenvolvimento de projetos de
software.
68
5.2.6. Limitaes
69
Nr.
Empresas
Sem Certificao de Qualidade
21
47,73
23
52,27
13
29,55
6,82
2,27
13,63
Nr.Empresas
Enquete (%)
MCT (%)
28
63,64
40,1
29
65,91
29,0
Gesto de Riscos
19
43,18
11,8
Gesto de Mudanas
23
52,27
10,4
A anlise sobre a utilizao dos ciclos de vida utilizados pelas empresas apresenta
ainda uma grande participao do modelo cascata na maioria das organizaes.
Porm, pode ser verificado um bom crescimento na utilizao do modelo iterativo
dentro das organizaes, conforme ilustrado na Tabela 5.4.
70
Outra observao importante sobre os ciclos de vida que a maioria das empresas
com certificao de qualidade utiliza mais de um modelo em seu processo de
desenvolvimento.
Ainda no universo pesquisado, 9% das organizaes no utilizam nenhum dos
modelos de ciclo de vida apresentados pela enquete.
Nr.Empresas
Iterativo
16
36,36
Cascata
13
29,55
Espiral
11
25,00
Outros
9,09
100
90
80
70
60
50
40
30
20
10
0
93,18
84,09
75
70,45
40,91
34,09
31,82
15,91
15,91
11,36
Ti
Ki
m
ck
eb
-o
ox
ff
en
tre
fa
Pr
se
ot
s
t
ip
o
En
E
ge
vo
lu
nh
tiv
ar
o
ia
S
im
ul
t
ne
a
na
m
C
en
om
to
po
ne
nt
iz
a
o
za
ti c
io
Pa
r
eu
ti l
i
ui
te
tu
ra
Ar
q
in
o
fn
Ki
ck
-o
f
de
In
te
r
M
t
od
o
t
ti p
Pr
o
c
io
fa
ce
18,18
O
O
% Utilizao
71
Nr.Empresas
Desenvolvimento Timebox
36
81,82
23
52,27
Particionamento
29
65,91
28
63,64
Reuso de Componentes
25
56,81
Engenharia Simultnea
39
88,64
58,06
41,94
72
69,70
63,64
72,73
63,64
73,73
A partir dos resultados apresentados pela enquete verifica-se que, com a aplicao
destas tcnicas e prticas de engenharia de software, possvel promover a
melhoria da produtividade, a diminuio do retrabalho e a reduo de tempo no
desenvolvimento de software.
Neste captulo foi apresentado o resultado da pesquisa realizada pelo MCT (2002)
sobre qualidade e produtividade de software no Brasil e os resultados sobre a
avaliao da utilizao das tcnicas e prticas propostas pelo roteiro deste trabalho,
73
produtividade
permitindo
desenvolvimento de software.
obteno
de
ganhos
reais
no
tempo
74
___________________________________________________________________
Objetivo do Captulo
75
Rpido
Collier e
RAD
Evolutivo
Collofello
Prototipao Evolutiva
Software
Componentizao
Reuso
Atividades Concorrentes
Desenvolvimento Timebox
Equipes reduzidas
Ferramentas CASE
Simplificao de Tarefas
JAD
X
X
76
Rpido
Collier e
RAD
Evolutivo
Collofello
Melhoria da Comunicao
Aumento da Produtividade
Reduo de Riscos
Controle da Complexidade
Reduo do Retrabalho
Manuteno da Qualidade
Blackburn
Enquete
Software
2000
2005
Engenharia Simultnea
Componentizao
Reuso
Prototipao Evolutiva
Prototipao de Interface
Simplificao de tarefas
X
X
77
Timebox:
Permite
focar
desenvolvimento
nas
78
Tabela 6.4 Mapeamento das Prticas e Tcnicas com os Objetivos de Reduo de Tempo
Objetivos
Melhoria da Comunicao
Aumento da produtividade
Reduo de Riscos
Controle da Complexidade
Reduo do Retrabalho
Manuteno da Qualidade
Prticas e Tcnicas
Planejamento Colaborativo
Prototipao
Arquitetura de Software
Reuso
Engenharia Simultnea
Arquitetura de Software
Prototipao
Timebox
Arquitetura de Software
Particionamento
Timebox
Reuso
Desenvolvimento baseado em Componentes
Reuso
Prototipao
Arquitetura de Software
Desenvolvimento baseado em Componentes
Reuso
Embora essas tcnicas e prticas tenham sido selecionadas para constiturem este
roteiro, o grupo de atividades apresentado na Figura 6.1 pode ser utilizado como
referncia para a criao de outros roteiros ou para incluso de outras tcnicas ou
prticas de engenharia de software que auxiliem na reduo de tempo no
desenvolvimento de software.
79
80
1) Planejamento do Projeto
81
82
seguintes
pontos
devem
ser
seguidos
para
aplicao
do
desenvolvimento timebox:
requisitos
desenvolvido;
de
negcio
funcionais
que
deseja
ver
83
84
5) Engenharia Simultnea
85
Pontos Fortes
Pontos Fracos
Aumento da produtividade.
relacionada
caractersticas
do
projeto
que
est
sendo
86
87
88
- Atividades Executadas
89
documento
de
pendncias
ou
no
mapa
de
riscos
para
futuro
acompanhamento.
Nesta atividade, elabora-se o cronograma preliminar de tarefas do projeto,
alinhado com o ciclo de vida definido e orientado construo dos
produtos previstos na EAP. Aps a concluso do cronograma,
recomendvel a criao da linha de base do projeto que serve de
referncia para o controle e acompanhamento do prazo e do custo do
projeto.
90
- Restries Identificadas
91
- Atividades Executadas
1) Definir o Particionamento
claro
das
caractersticas
pelo
cliente.
prottipo
92
93
so
descritos
aqueles
que
devem
ser
adquiridos
ou
desenvolvidos.
94
- Restries Identificadas
95
- Atividades Executadas
1) Realizao da reunio de Kickoff:
96
- Restries Identificadas
A principal restrio identificada nesta fase refere-se a ausncia de uma das partes
envolvidas no projeto na reunio de kickoff ou a recusa na realizao da mesma.
Neste caso, devem ser realizadas reunies junto ao cliente destacando a
importncia e os objetivos da realizao da mesma.
- Atividades Executadas
1) Definir os componentes:
97
- Restries Identificadas
A maior restrio verificada para esta fase est em no se utilizar linguagens
orientadas a objetos na construo dos componentes, tornando-se fator impeditivo
para aplicao das atividades desta fase. Pela sua estrutura, a orientao a objetos
permite a organizao do software em componentes e facilita o reuso em outras
aplicaes.
98
- Atividades Executadas
1) Desenvolvimento da partio:
99
- Restries Identificadas
Conforme descrito na fase de planejamento do projeto, no recomendada a
utilizao do modelo de ciclo de vida em cascata, pois pouco flexvel
incorporao de mudanas e aos resultados produzidos so tardios.
Nr.
1
EAP
1 - Planejamento
Mapa de Riscos
1 - Planejamento
Cronograma Preliminar
1 - Planejamento
1 - Planejamento
2 Estratgia da Soluo
Prottipo
2 Estratgia da Soluo
2 Estratgia da Soluo
Lista de Componentes
2 Estratgia da Soluo
Cronograma de trabalho
2 Estratgia da Soluo
10
3 Formalizao e Incio
11
4 Reuso e Componentes
reuso
12
Pacote
5 - Desenvolvimento
13
5 Desenvolvimento
14
5 Desenvolvimento
100
101
___________________________________________________________________
102
103
104
Caractersticas
Antes do roteiro
Gerncia de Mudanas
No existente
Gerncia de Riscos
Baixa utilizao
Reduo do retrabalho.
Ciclo de Vida
Cascata
Espiral.
Envolvimento do cliente
Excesso de retrabalho,
nas validaes.
No utilizado
4
5
Timebox
Engenharia Simultnea
Uso limitado de
prototipao
na fase de requisitos.
Desenvolvimento
No utilizado
Componentizado
9
Reutilizao
No existia
10
11
Prazo do Projeto
Qualidade do Software
prazo planejado.
estabelecido.
Melhoria da qualidade do
e suscetibilidade a erros
durante a validao
12
Encerramento do
Projeto
cliente.
105
atividades
envolvendo
as
empresas
terceirizadas,
aumentando
106
Nr
Caractersticas
Planejamento Colaborativo
Antes do roteiro
Conflitos de prioridades e
atraso nas validaes
prioridades conjuntas e
comprometimento do cliente.
Definio das entregas
Timebox
No utilizado
Uso de Prototipao
Prototipao de interface
Engenharia Simultnea
Uso na codificao
Desenvolvimento baseado em
componentes de negcio e na
Utilizado
componentes
definio de um responsvel
pelos componentes.
Reutilizao
Aumento do reuso de
Utilizado
componentes de negcio.
Aumento de escala atravs da
Uso de Desenvolvimento
definio da arquitetura,
Limitado
Terceirizado
existncia de componentes e
reutilizao do software.
concorrente
aumentar
nvel
de
reutilizao
dos
componentes.
Com a aplicao do roteiro proposto foram verificados resultados tangveis em
relao reduo de tempo no desenvolvimento de software, no aumento da
produtividade e no controle da complexidade do software.
107
108
109
Tabela 7.3 Aes Corretivas para tratar as Dificuldades encontradas com a Equipe de Projeto
Dificuldades
Aes Corretivas
na
aplicao
da
2 simultnea.
3 Falta
de
Repositrio
componentes.
central
4 Resistncia ao reuso.
5 Falta
de
eficincia
comunicao.
no
110
Tabela 7.4 Aes Corretivas para tratar as Dificuldades encontradas com o Cliente
Dificuldades
1 Falta
de
participao
de
Aes Corretivas
todos
envolvidos do cliente.
com
apresentao
das
vantagens
3 No aceitao de incorporao das Apresentao dos impactos nos prazos das entregas,
mudanas posteriores s entregas.
caso
as
mudanas
fossem
incorporadas
imediatamente.
4 Resistncia em receber e validar as Criao de parties que permitam a avaliao de um
entregas parciais.
111
___________________________________________________________________
8 CONSIDERAES FINAIS
Objetivo do Captulo
entre
elas,
desenvolvimento concorrente;
visando
aumentar
as
possibilidades
de
112
com
utilizao
de
servios
terceirizados,
sem
113
6. A incorporao das
mudanas de requisitos
detectadas
durante o
114
para
eventuais
adequaes
necessidades
especficas
de
115
116
___________________________________________________________________
REFERNCIAS BIBLIOGRFICAS
117
118
119
120
121
___________________________________________________________________
R-1
R-2
R-3
R-4
R-5
Consultoria
Indstria
Telecom
Finanas
Outras
At 50
50 a 100
100 a
1000 a
Mais de
1000
2000
2000
sua empresa:
2
ISO9000
CMM
CMMI
SPICE
Nvel 2
Nvel 3
Nvel 4
Nvel 5
Sim
No
No possui
Pouco
Utilizado
Utilizado
Sempre
certificaes?
4
Nenhum
Pontos de
Pontos
funo
de casos
Outros
de uso
6.2 O projeto particionado para
reduzir a complexidade?
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
A cada 15
Por
Por Semana
dias
Por ms
produto
No utiliza
Iterativo
Espiral
Cascata
Anlise
Formaliza
de
Gesto de
Riscos
Mudanas
de acompanhamento com o
cliente?
7
Na fase de planejamento do
projeto, sua empresa gera quais
dos artefatos listados abaixo?
Cronograma
EAP
122
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
cliente ?
10
TimeBox uma tcnica que tem como objetivo enquadrar as caractersticas principais do
projeto restrio do tempo estabelecido para o projeto, permitindo o atendimento das
mesmas na prioridade necessria para o atendimento dos prazos. Com base nesta afirmativa
responda questo 11:
11
No
conhece
Conhece e Utiliza s
Utiliza
no usa
vezes
sempre
Utiliza s
Utiliza
vezes
Sempre
Prottipo
Prottipo
Ambos os
de
Evolutivo
prottipos
TimeBox?
12
No utiliza
desenvolvimento de software?
13
Nenhuma
desenvolvimento de software?
14
Interface
Nunca
Sempre
s vezes
artefatos desenvolvidos ?
15
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
No
Sim
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
17
18
A arquitetura de implementao
da aplicao definida nas
123
Nunca
Sempre
s vezes
No
Informal
Formal,
Formal com
sem
processo
componentes para a
reutilizao?
20
O reuso de componentes
difundido em sua empresa de
difundida
que forma?
21
processo
Nenhum
Dentro de
Entre
um projeto
vrios
Na empresa
projetos
22
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
No desenvolvimento de
software sua empresa utiliza
No
Conhece e Utiliza s
conhece
no usa
vezes
Sempre
Requisitos
Anlise
Projeto
Cdigo
No
Sim
Nunca
Sempre
s vezes
Nunca
Sempre
s vezes
Engenharia Simultnea?
24
25
A ES na fase de codificao
aplicada baseada no reuso?
26
27
Testes
124