1. Fábrica
de
So-ware
Centro
de
Informá-ca
-‐
Universidade
Federal
de
Pernambuco
Sistemas
de
Informação
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
2. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Warm
up…
• Engenharia
=
“é
a
a-vidade
em
que
os
conhecimentos
cienIficos
são
empregados
para
resolver
problemas
prá-cos”
• Engenharia
de
SoLware
=
“é
a
a-vidade
em
que
os
[conhecimentos
cien9ficos]
são
empregados
para
resolver
problemas
prá-cos
relacionados
à
construção
de
soLware”
2
3. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Warm
up…
“Um
dos
obje-vos
básicos
da
Engenharia
de
SoLware
é
transformar
a
criação
de
sistemas
soLware
realizada
de
maneira
ar9sHca,
indisciplinada
e
pouco
entendível
para
uma
forma
devidamente
controlada,
quan-ficada
e
previsível.”
3
4. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
A
Origem
• Em
1968,
especialistas
se
reúnem
em
Garmisch,
para
discu-r
problemas
de
desenvolvimento
de
soLware
h[p://homepages.cs.ncl.ac.uk/brian.randell/NATO/index.html
4
5. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Problemas
da
época
• Produtos
de
SoLware
– de
baixa
qualidade
e
– sem
atender
requisitos
e
• Projetos
realizados
acima
– do
orçamento
e
do
– tempo
previsto
e
– vez
por
outra
ingerenciáveis
5
6. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
A
crise
do
so-ware
• A
crise
do
soLware
foi
um
termo
u-lizado
nos
anos
70,
quando
a
engenharia
de
soLware
era
pra-camente
inexistente.
• O
termo
expressava
as
dificuldades
do
desenvolvimento
de
soLware
frente
ao
rápido
crescimento
da
demanda
por
so-ware,
da
complexidade
dos
problemas
a
serem
resolvidos
e
da
inexistência
de
técnicas
estabelecidas
para
o
desenvolvimento
de
sistemas
que
funcionassem
adequadamente
ou
pudessem
ser
validados.
6
8. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Produção
de
So-ware:
histórico
• 60´s
Fábrica
de
SoLware
• 70´s
Kanbam
• 70´s
Just
In
Time
• 80´s
SIGMA
• 90´s
CMM
• 00´s
Fábrica
de
SoLware...
de
novo!
• 10´s
Fábrica
de
Componentes?
SPL?
MDD?
• COMUNIDADES?
• SaaS?
Cloud
Compu-ng?
• Distribuída?
8
9. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Fábricas
de
So-ware
• Princípios
• Conceitos
• Ilusões
9
10. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Fábrica
de
so-ware
na
práHca
• Operação
profissional
• Processo
de
desenvolvimento
transparente
• Retorno
rápido
ao
cliente
• Alta
produ-vidade
– Ferramentas
e
processos
padronizados
• Alta
qualidade
– Dados
históricos,
previsibilidade
e
análise
de
risco
• Reusabilidade
de
código
[1968
G&E,
R.
W.
Berner]
[2003
IEEE
Computer
Vol.36
Num.3,
B.
Boehm]
[2005
IEEE
SoLware
Vol.
22
Num
2,
PostModern
SW
Design]
10
11. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Fábrica
de
so-ware
na
práHca
• E
o
mercado?
– h[p://mshiltonj.com/soLware_wars/
11
15. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Cathedral
and
Bazaar
e
Desenvolvimento
de
SoLware
segundo
Eric
Raymond,
1997
Alguns
projetos
são
como
Cathedrals
• altamente
centralizados
em
poucas
pessoas
que
decidem
projeto
e
implementação
• para
fazer
parte
deve-‐se
aceitar
as
definições
Fonte:
h[p://catb.org/~esr/wri-ngs/cathedral-‐bazaar/cathedral-‐bazaar/
15
16. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Outros
são
como
Bazaars
(SW
livre)
• Sem
planejamento
detalhado
mas
orientados!
• Linux
Kernel
(www.linux.org):
“hierarchical”
– Linus
Torvalds,
“The
Benevolent
Dictator”
• APACHE
Founda-on
(www.apache.org):
“meritocracy”
– Para
fazer
parte
você
deve
ter
colaborado
con-nuamente
em
projetos
da
fundação
• GCC
(gcc.gnu.org):
“steering
CommiVee”
16
17. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Conceitos
“The
factory
is
an
organizaHon
inhabited
by
people
engaged
in
a
common
effort,
work
is
organized
one
way
or
the
other,
standardizaHon
is
used
for
coordinaHon
and
formalizaHon,
and
systema-za-on
is
important,
but
there
will
be
several
op-ons
for
the
design
of
a
par-cular
soLware
factory”
[Aaen,
Botcher,
Mathiassen,
SoLware
Factories,
1997]
h[p://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf
17
18. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Fábricas
de
so-ware:
4
estratégias...
• Japonesa
(1981,1987)
– SWB
–
SoLware
Work
Bench
• Européia
(1991,1992)
– ISDE
–
Integrated
SoLware
Development
Environment
• Norte-‐Americana
– experiência
produção
(1989,1993)
• Norte-‐Americana
– níveis
de
maturidade
(1990,1993)
18
19. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Estratégia
Japonesa
• Aumento
de
produ-vidade
e
qualidade
de
desenvolvimento
e
manutenção
• Estratégia
baseada
em
infra-‐estrutura:
•sica,
organizacional
e
ferramental
• Uso
de
métricas
• Metodologia
padronizada
para
todos
os
projetos
• Reuso
em
todas
as
fases
• Foco
em
tecnologia
19
20. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Estratégia
Européia
• Ambientes
integrados
de
desenvolvimento
orientados
a
cliente
(IDEs)
• Estratégia
orientada
a
ferramentas:
padronização
de
componentes,
adaptação
de
processo
• Sem
métricas
• Metodologia
adaptada
por
projeto
• Sem
reuso
• Foco
em
Tecnologia
•
(Organizacional...
ISO-‐9000)
20
21. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Estratégia
Norte
Americana
1
• Baseada
em
Componentes
• Maior
eficácia
de
processos,
menos
re-‐trabalho
e
mais
reuso
• Estratégia
de
melhoria
conInua
baseada
na
experiencia
adquirida
• Sem
métricas
• Metodologia
adaptada
por
projeto
• Reuso
• Sem
foco
em
tecnologia
•
(...Ágeis...XP
–
Extreme
Programming)
21
22. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Estratégia
Norte
Americana
2
• Processo
eficaz,
previsível,
confiável
e
auto-‐
melhorável
• Estratégia
de
melhoria
em
etapas,
níveis
de
maturidade
• Uso
de
métricas
• Metodologia
adaptada
por
projeto
• Pouco
reuso
• Pouco
foco
em
tecnologia
•
(Processos...
RUP,
CMM...)
22
23. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
…
considerações
…
“The
four
approaches
are
important
contribu-ons
towards
this
goal.
At
the
same
-me
the
approaches
individually
may
lead
to
unfortunate
illusions.
Learning
from
the
rela-ve
strengths
and
weaknesses
between
the
approaches
may
help
us
avoid
becoming
vic-ms
of
these
illusions”
[Aaen,
Botcher,
Mathiassen,
SoLware
Factories,
1997]
h[p://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf
23
24. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
...e
ilusões...
Fonte:
www.icb.ufmg.br
≠
fábrica
de
soLware
produção
em
massa
padronização,
formalização,
especialização,
≠
controle
produção
de
soLware
com
qualidade
o
que
fazer?
24
25. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Building
a
so-ware
factory…
[Making
the
soLware
factory
work...
1990-‐1999]
h[p://doi.ieeecomputersociety.org/10.1109/METRIC.2001.915539
1. to
define
a
detailed
soLware
development
process
2. staff
members
were
given
extensive
training
in
the
new
process
3. process
specifica-on
separated
from
process
execu-on
4. data
collec-on
and
analysis
1. interviews
2. soLware
process
assessments
3. process
a[ributes
for
each
project
4. configura-on
management
system
5. project
tracking
data
25
26. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Lições
aprendidas
• separa-ng
func-on
of
process
engineer
from
developer
• job
rota-on
between
process
engineering
and
product
development
26
27. [if977]
Engenharia
de
So-ware
-‐
CIn
-‐
UFPE
Building
a
so-ware
factory...
• Framework:
– ...
process
x
team
– ...
requirements
x
architecture
– ...
metrics
x
uncertainty
– ...
tools
x
process
– ...
communi-es
– ...
27