Fábricas de Software
Prof. Jones Albuquerque
slide 1 de 116
ROTEIRO
1. Conceitos, idéias e mitos
2. Processos e Casos de sucesso e falha
3. Oficina de Montagem de Fábricas
4. Venda de Software
slide 2 de 116
communications
applications
services
infrastructure
slide 3 de 116
communications software
applications
applications
services
middleware
infrastructure
hardware + op sys
slide 4 de 116
[zysman stack]
BUSINESS
communications
PROCESSES
applications
applications
services
software
infrastructure
computing +
communications
slide 5 de 116
seu negócio é
uma
comunidade!
Silvio Meira
slide 6 de 116
http://headrush.typepad.com/creating_passionate_users/2007/03/user_community_.html
slide 7 de 116
comunidade
desenvolve [novos]
produtos e serviços
slide 8 de 116
desenvolvimento de software
em indústria, comunidades
acadêmicas e científicas
uma fábrica de software? Uma
comunidade de software...
slide 9 de 116
um típico laboratório de desenvolvimento...
slide 10 de 116
Produção de
Software: histórico
• 60´s Fábrica de
Software
• 70´s Kanbam
• 70´s Just In Time
• 80´s SIGMA
• 90´s CMM
• 00´s Fábrica de
Software... de novo!
• 10´s Fábrica de
Componentes?
slide 11 de 116
Fonte: sixsigmatutorial.com
factories X Business X OSS development...
•
•
•
•
•
•
conjunções e intersecções
métodos e ferramentas
processo
modelos
licenças
vendas
slide 12 de 116
Free Software Projects
•
•
•
•
•
Nascem como iniciativa isolada
e particular
Usuários são codesenvolvedores
Divulgação “boca-a-boca”
Teste massificado pelos
usuários
Gerência de versões é complexa
e “bem-definida”
slide 13 de 116
SW livre e a monark?
No Natal de 1964, a bicicleta Monark na sala, em Arcoverde, não era mais nem tanta
surpresa assim. Eu tinha infernizado a vida de Seu Inácio meses a fio e ele, para se
livrar da perseguição, talvez fosse capaz de me comprar um Sherman M4, daqueles
que o exército brasileiro usou até o fim dos anos 70. O fato é que lá estava a bike de
gente grande, muito diferente daquela de "minino" que eu tinha até a véspera, agora
herança de meus irmãos. Depois de desfilar meu novo status para a vizinhança, as
próximas providências foram tirar o bagageiro e instalar uns retrovisores... muito
mais pra eu me ver pedalando do que para vigiar o tráfego. E, como fevereiro vinha
por ali, fazer uma sirene, com barbante, borracha de câmara de ar e uma lata de óleo
Salada, pra zoar no carnaval. Minha bicicleta, minhas modificações, meus
adicionais, a Monark nunca teve uma satisfação, nem nunca me cobrou.
slide 14 de 116
http://www.no.com.br/revista/noticia/54475/atual
Open Source Projects
•
(Sun apr 22 20:18:32 BRT 2007)  189,827 projects!
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Communications (18979)
Database (7090)
Desktop Environment (3843)
Education (5076)
Formats and Protocols (3014)
Games/Entertainment (17723)
Internet (29002)
Multimedia (15900)
Office/Business (9960)
Other/Nonlisted Topic (2620)
Printing (526)
Religion and Philosophy (341)
Scientific/Engineering (15436)
Security (3350)
Sociology (442)
Software Development (29007)
System (23545)
Text Editors (3275)
slide 15 de 116
231,649 projects nov 29 BRT 2007!
268,668 projects apr 24 BRT 2008!
273,633 projects mai 15 BRT 2008!
http://sourceforge.net/
sourceforge.net
•2005 jun 100K
•2006 apr 134K
•2007 apr 189K
•2008 apr 269K
300
250
200
150
Série1
100
50
0
2004 2005 2006 2007 2008 2009
273,633 projects mai 15 BRT 2008!!!
slide 16 de 116
fábricas de software
princípios
conceitos
ilusões
Fonte: www.cs.ucla.edu
slide 17 de 116
fábrica de software na
prática
•
Operação profissional
•
Processo de desenvolvimento transparente
•
Retorno rápido ao cliente
•
Alta produtividade
• Ferramentas e processos padronizados
•
Alta qualidade
• Dados históricos, previsibilidade e análise de risco
•
Reusabilidade de código
slide 18 de 116
[1968 G&E, R. W. Berner]
[2003 IEEE Computer Vol.36 Num.3, B. Boehm]
[2005 IEEE Software Vol. 22 Num 2, PostModern SW Design]
e o mercado?
• http://mshiltonj.com/software_wars/
slide 19 de 116
slide 20 de 116
slide 21 de 116
slide 22 de 116
Cathedral
and Bazaar
e Desenvolvimento de Software
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: http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/
slide 23 de 116
Outros são como
Bazaars (SW livre)
Sem planejamento detalhado mas orientados!
•
Linux Kernel (www.linux.org): “hierarchical”
– Linus Torvalds, “The Benevolent Dictator”
•
APACHE Foundation (www.apache.org): “meritocracy”
– Para fazer parte você deve ter colaborado continuamente em projetos da
fundação
•
GCC (gcc.gnu.org): “steering Commitee”
slide 24 de 116
Conceitos
“The factory is an organization inhabited by people engaged in a common
effort, work is organized one way or the other, standardization is used for
coordination and formalization, and systematization is important, but there
will be several options for the design of a particular software factory”
[Aaen, Botcher, Mathiassen, Software Factories, 1997]
http://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf
slide 25 de 116
•
fábricas de software: 4
estratégias...
Japonesa (1981,1987)
– SWB – Software Work Bench
•
Européia (1991,1992)
– ISDE – Integrated Software Development Environment
•
Norte-Americana
– experiência produção (1989,1993)
•
Norte-Americana
– níveis de maturidade (1990,1993)
slide 26 de 116
...considerações...
“The four approaches are important
contributions towards this goal. At the
same time the approaches individually
may lead to unfortunate illusions.
Learning from the relative strengths and
weaknesses between the approaches
may help us avoid becoming victims of
these illusions”
slide 27 de 116
[Aaen, Botcher, Mathiassen, Software Factories, 1997]
http://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf
...e ilusões...
fábrica de software
≠ produção em massa
padronização, formalização, especialização,
controle
≠
produção de software com
qualidade
o que fazer?
Fonte: www.icb.ufmg.br
slide 28 de 116
Discussion
...  open source communities versus Software Factories
• personal time and autonomy
...  freelancers
...  project-oriented
•
... there are several avenues for future research
– ... to refine the proposed framework and validate it empirically
slide 29 de 116
e as comunidades híbridas?
A Framework for
creating hybrid-open
source software
communities
Srinarayan Sharma
et. al.
Info Systems
(2002), 12.
slide 30 de 116
FONTE: http://www.blackwell-synergy.com/doi/pdf/10.1046/j.1365-2575.2002.00116.x
Introdução
•
“OSS model is a fundamentally new and revolutionary way to develop
software”
•
“organizations are having difficulty building a business model around the
open source paradigm”
•
“not all OSS initiatives have been successful”
•
•
“a Framework for creating
Hybrid-OSS communities!!!”
slide 31 de 116
o modelo de OSS - Open-Source Software
• Três dimensões
– Estrutura, processo e cultura
Division of labour
Co-ordination mechanisms
structure
culture
Eletronic
communication
Multicultural
community
Distribution od decisionmaking
Informal structure
Values: reciprocity, gift
giving, reputation,
ideology
Political structure
Core assumptions
Organizational boundaries
Legitimate basis of authority
process
Fonte: Info Systems (2002), 12.
slide 32 de 116
o que “sabemos” aqui?
• TODO o pressman ou sommerville
(Software Engineering)
• ou seja:
– requisitos, especificações, refinamento,
validação e verificação, métodos, técnicas,
linguagens e ferramentas, componentes,
reutilização, manutenção, modelagem de
processos, qualidade, reengenharia,,
verificação, validação e teste... além de
programação JAVA++!...
– {faltaria o quê?}
slide 33 de 116
ROTEIRO
1. Conceitos, idéias e mitos
2. Processos e Casos de sucesso e falha
3. Oficina de Montagem de Fábricas
4. Venda de Software
slide 34 de 116
building a software factory...
[Making the software factory work... 1990-1999]
1.
to define a detailed software development process
2.
staff members were given extensive training in the new process
3.
process specification separated from process execution
4.
data collection and analysis
1.
2.
3.
4.
5.
interviews
software process assesments
process attributes for each project
configuration management system
project tracking data
http://ieeexplore.ieee.org/iel5/7313/19776/00
915539.pdf
slide 35 de 116
Lições
aprendidas
• “separating function of process engineer
from developer”
• “job rotation between process engineering
and product development”
slide 36 de 116
Fonte: www.everest2006.com.br
Framework para construção
de fábricas de software
uma proposta
1.
2.
3.
4.
5.
6.
... processo x equipe
... requisitos x arquitetura
... métricas x incerteza
... ferramentas x processo
... Comunidade x produto
... ??
processo para definição de atividades,
Precisamos de um
ferramentas, técnicas, artefatos...
slide 37 de 116
Processo de Software
É o que as pessoas fazem, utilizando
procedimentos, métodos e ferramentas,
para adquirir, desenvolver, manter e
melhorar software e produtos associados
Objetivos
Entradas
ATIVIDADES
Recursos e Infraestrutura
slide 38 de 116
Saídas
Por que usar modelos?
•
•
•
•
•
•
Repositório das melhores práticas da Engenharia de Software (SWEBOK,
CMMI, Exemplo:
ISO15504, ISO9000,PMBOK)
BOLO PRESTÍGIO DA TIA RÔ
Modelo
Referência para escrever e estabelecer processos
Define
“o quê“ deve
ser feito,
não o “como”
Cobertura
tipo
brigadeiro
Exemplo:
Fazer
bolo
de chocolate
comdecobertura
Independente
da
tecnologia
ser utilizada
• Ingredientes:
1 um
lata a
leite
condensado,
1 colher
manteiga, 4
colheres
de chocolate
de
brigadeiro
ejárecheio
Diversas
empresas
utilizaram de
comcreme
sucesso de coco, sem utilizar
• Modo de fazer: xxxx
batedeira.
•
de fundamentais
Conhecimento
Os Massa
modelos definem
de processos
para
básicaum
deconjunto
bolo universalÁreas
•Engenharia
Quais
os
ingredientes
????
• Ingredientes:
4 ovos,
colheres
água,
3 xícaras
de
de Software
e um 16
roteiro
racionaldepara
avaliação
e melhoria
de
•cada
Que
atividades??
farinha,
3 xícaras de açucar, 1 colher de pó royal
processo
• Mododevo
de fazer:
xxxx
• Como
proceder??
Recheio
• Ingredientes: 1 lata de leite condensado, 1 lata de creme de
leite, 1 vidro de leite de coco, 150g de coco
• Modo de fazer: xxxx
slide 39 de 116
Exemplo de modelo: CMMI
ÁREAS DE PROCESSO
RSKM: Gestão de Risco
OPF: Foco no Processo
QPM: Gestão Quantitativa de Projeto
Organizacional
REQM: Gestão de Requisitos
OPD: Definição do Processo
RD: Desenvolvimento de Requisitos
Organizacional
TS: Solução Técnica
OT: Treinamento Organizacional
PI: Integração de Produto
OPP: Desempenho do Processo
VER: Verificação
Organizacional
VAL: Validação
OID: Inovação e Melhoria
CM: Gestão de Configuração
Organizacional
PPQA: Garantia da Qualidade
PP: Planejamento de Projeto
de Processo e Produto
PMC: Acompanhamento e
MA: Medição e Análise
Controle de Projeto
DAR: Análise de Decisão e Resolução
SAM: Gestão de Acordos
CAR: Análise de Causa e
com Fornecedores
Resolução
IPM: Gestão Integrada de Projeto
slide 40 de 116
Exemplo de modelo: CMMI - REQM
Gerenciar os requisitos
Obter
Entendimento
dos
Requisitos
Requisitos
Identificar
Inconsistências
entre Trabalho
do Projeto e
Requisitos
Obter
Comprometimento para
os Requisitos
Gerenciar
Mudanças
Requisitos
Manter
Rastreamento
Bidirecional
Requisitos
Matriz de Rastreabilidade ou
Sistema de Acompanhamento de Requisitos
slide 41 de 116
Principais Modelos de Capacidade
de Processo
• ISO/IEC 15504 (SPICE) :
Software Engineering: Process Assessment
(Engenharia de Software: Avaliação de Processo)
– SPICE: Software Process Improvement Capability dEtermination
• CMMI : Capability Maturity Model Integration
(Modelo Integrado de Maturidade da Capacidade)
• MR-MPS: Modelo de Referência do Projeto MPS-BR
• Há outros ?
slide 42 de 116
Processos, guias, modelos... um mundo!
slide 43 de 116
o PROCESSO é complexo!
slide 44 de 116
(c) MERX LLC
o processo é complexo... Ex.: Ampla
F
á
E
l a
r
b
o
b
r
i
a
d
o
:
O
J
S
-
f
o
S
e
d
a
c
R
e
v
t
i s
ã
o
r
a
t i f i c
n
e
I d
q
s
a
d
n
a
m
e
s
m
a
s
s
o
e
p
s
a
i d
d
n
e
d
s
a
r e
á
n
e
i m
c
e
h
n
e
d
p
e
t
a
o
c
a
l i d
a
V
r
r
i t
o
o
Prospecção
o
o
ã
ç
a
m
r
o
f
0
e
s
t
i s
ã
c
s
s
o
e
/
l a
s
c
r
n
L
í
t
e
D
R
U
C
d
e
r
T
é
i
u
q
E
p
r
e
G
t e
n
d
e
e
e
p
e
G
e
r
r
n
e
t
P
n
e
r
t
o
e
s
s
l
i a
r c
i a
g
l o
o
a
u
Q
e
e
n
c
e
T
e
c
m
o
C
e
d
s
o
a
l i d
d
e
s
o
T
é
d
í
L
2
e
p
i
u
q
E
e
d
í
L
1
e
e
r
T
é
q
E
i
u
n
e
d
p
G
i c
n
c
s
o
s
o
i c
n
c
n
c
i c
s
o
s
o
o
p
o
?
t
j e
o
r
P
e
d
e
t
n
e
r
e
r
e
G
S
f
r
e
r
s
t a
j e
e
c
a
o
r
P
t
i n
r
t
o
f
t
o
e
r
t
a
i p
c
R
D
T
q
e
c
P
R
O
D
R
T
?
K
O
N
R
D
s
e
c
f a
s
o
r
i t
t e
i s
i n
u
r
a
r
G
p
G
s
e
O
l i d
e
a
V
r
a
l
C
e
D
P
i n
s
R
P
T
p
e
c
a
f
r
e
t
i n
r
a
t
j e
o
r
P
S
?
O
R
P
u
q
e
l i e
G
R
G
R
r
o
t
e
i r
D
C
R
E
A
o
ã
ç
i t
i s
u
q
e
n
p
G
s
a
c
G
l
C
N
I
ã
o
t
M
e
s
e
u
r
s
l a
c
G
i t
i s
v
r
a
d
n
e
g
t a
n
e
s
r e
p
a
r a
o
ã
ç
i t a
l i c
e
u
/ o
s
i t o
i s
u
q
r e
A
a
r
e
V
-
i
D
c
G
p
m
e
a
B
A
C
:
o
i
r
o
t
l
d
o
i
c
í
n
a
v
Prospecção
I
u
s
o
r
p
A
-
R
n
o
C
a
M
G
,
L
M
l
p
m
A
P
J
,
B
A
C
:
a
d
e
r
a
w
N
S
R
D
Contrato
Proposta
r
d
e
e
C
r
t
i n
r
a
i s
i t o
i s
c
,
s
M
e
v
e
R
u
q
e
e
c
f a
o
s
u
R
C
U
M
E
M
é
T
r
P
r
i a
a
i c
n
c
P
e
d
r
P
j e
R
D
R
F
s
o
F
P
P
o
ã
ç
t
n
o
P
e
n
d
u
e
l i s
e
d
á
r
e
P
r
i a
C
r
C
F
P
P
m
o
o
r
i
a
t
s
o
i a
p
c
D
p
G
c
G
o
n
p
G
E
R
c
G
a
t
s
l a
t o
o
p
o
e
o
n
C
U
s
o
R
p
G
R
D
R
D
A
,
s
s
a
E
R
E
M
c
G
p
G
C
P
l
C
U
T
P
P
T
1
P
P
R
E
M
1
p
,
C
P
r
R
a
D
t
n
e
e
s
T
e
P
r
p
A
G
c
G
i
D
C
P
R
D
p
Proposta
G
Execução
r
p
a
v
j e
a
t
d
õ
e
o
o
?
s
?
g
e
R
s
u
s
N
n
e
r
p
p
o
i s
s
j e
r
t r a
o
ã
t o
o
d
C
S
F
P
P
,
F
P
i s
P
C
P
,
T
P
,
R
D
e
r
a
P
C
P
T
O
R
i s
v
e
R
S
.
T
O
R
R
D
T
P
F
P
P
v
e
R
T
O
R
o
r
o
P
T
P
P
P
P
C
o
C
r
m
a
t
s
o
l
c
o
c
i a
r
e
c
i s
r
r
l i a
a
v
p
s
P
P
P
P
c
G
p
p
i a
r o
r c
P
e
A
P
P
C
G
a
i s
v
e
R
L
p
G
P
i
D
o
g
e
n
e
R
S
?
Execução
N
a
e
R
e
c
t r e
e
n
P
P
s
s
i n
r
n
r
a
l i a
m
u
h
f t w
o
s
r d
a
h
a
v
a
e
R
a
w
e
s
v
n
e
i e
b
m
a
e
l v
r
d
o
a
r
a
p
n
t
t
n
e
i m
L
p
t
l a
e
n
i t
s
e
T
i o
i s
P
r
a
r
A
e
T
L
P
C
R
E
P
r
E
s
t
j e
o
Execução
u
n
p
r
t
a
DR
DR
R
E
M
d
q
s
u
e
r
r
a
a
r
a
o
n
ã
s
a
ç
t a
m
l e
b
o
n
e
m
l e
i c
r
n
u
m
d
o
C
S
?
P
o
a
o
r
j e
Gp Gc
D
o
P
r
e
d
í
L
t o
2
B-1
-
p
i m
m
p
l e
m
e
n
t
d
i n
r
r
e
s
r n
e
t e
t
n
e
D
S
(
o
)
D
(
I
)
o
M
E
i s
v
n
l a
e
p
R
e
S
?
o
i d
I
R
T
?
s
e
d
a
e
D
r
r
a
d
o
e
e
u
q
r
p
i s
o
i r
i g
r
r
o
C
2
-
B
P
R
Gp
B
N
?
r
a
r
g
e
t
n
I
P
D
DR
p
G
i t o
t
j e
P
P
D
R
UC
t
i
e
d
i s
u
r
q
p
e
r
r
a
o
i s
n
o
n
e
R
m
P
R
C
P
l i z
t
n
a
e
r
g
r
N
m
ç
a
e
d
e
t
s
ã
e
T
r
m
Execução
ã
o
i d
o
c
S
?
s
e
d
a
G
q
G
o
f
n
o
c
A
n
p
i m
s
o
l i c
r
a
o
n
v
ç
a
a
s
G
p
i t
ç
a
ã
S
M
S
M
c
o
r
s
N
?
s
E
o
c
n
l i c
F
e
i t
i
r
a
p
r a
ã
ç
Function Point
Analysis
G
PPF
c
r
o
m
MER
P
P
T
I
R
o
e
d
o
a
l
G
p
d
A
u
S
q
G
I
ç
G
r
l i a
a
v
A
M
UC
T
P
3
a
e
R
ã
ç
n
a
a
i t
d
l i c
u
o
S
P
D
S
,
c
r
i a
c
o
g
e
o
C
p
L
s
i t o
t o
j e
G
C
P
i
c
C
P
o
i ã
í
n
I
T
P
T
P
e
p
G
v
l a
e
n
u
n
r e
l i e
r
c
a
d
m
l
p
D
R
n
o
e
c
g
C
R
3
s
o
p
G
C
p
L
o
i d
l v
e
o
s
e
m
a
Revise
Requirements,
interfaces, E-R
and Use Cases
e
r
a
A
D
e
d
e
e
d
a
t
s
e
T
ã
N
m
S
N
I
S
?
K
r
f
n
S
e
D
r
P
a
o
d
A
o
R
D
P
P
T
P
C
P
e
D
p
t
n
e
s
e
p
i t o
i s
e
l v
o
v
n
O
o
r
i d
A
T
L
P
e
N
e
e
a
n
N
e
L
A
r
l i z
U
)
s
o
s
a
c
d
r
e
d
a
o
p
L
i f i c
s
t e
i d
e
d
e
d
o
c
n
s
a
o
b
d
r
a
a
d
c
e
p
T
L
(
I
D
c
p
L
P
)
o
e
d
s
o
(
S
D
p
L
M
e
D
a
e
R
T
L
P
1
-
o
s
u
p
G
r
a
s
a
c
r
a
l i z
a
e
e
o
D
R
p
d
a
o
d
o
n
A
e
r
c
u
l e
q
e
S
L
p
e
p
L
r
L
a
p
e
P
B
g
r
m
a
a
i s
r
v
o
n
o
r
c
s
B-2
p
p
o
r
s
t o
l i a
e
d
n
e
L
d
e
L
s
,
s
o
e
r e
r e
a
a
v
a
i d
m
a
e
R
r
P
r
u
e
D
p
ã
n
r
a
l i s
a
n
e
d
a
i d
r m
f o
r
j a
e
n
l a
p
ç
t a
n
e
m
l e
o
s
e
B
o
ã
N
q
G
MER
Entrega
ã
N
m
r
o
f
n
o
c
m
e
o
i d
t
s
a
e
T
r
a
t
i s
l i z
S
a
e
R
s
e
d
a
P
P
e
d
e
I
R
P
T
o
c
S
?
A
n
p
i m
G
ã
n
r
a
l i s
a
n
e
d
a
i d
r m
f o
r
j a
e
n
l a
p
ç
t a
n
e
m
l e
D
p
G
q
o
s
P
MER
e
B
o
ã
P
P
e
N
R
D
(
c
e
e
d
t e
o
ã
ç
i t a
t
n
l i e
c
a
p
ç
a
s
e
T
a
o
c
e
i t
m
n
p
G
l
C
)
a
I
A
R
e
t
o
l ?
i c
i a
e
P
n
r
a
o
í
t
i a
d
0
9
r
n
e
a
p
r
g
(
e
d
o
d
i a
)
s
R
A
o
Garantia
ã
r
t
o
c
i a
l
N
d
a
e
n
t
a
m
e
m
a
i n
e
r
a
e
R
t
r
a
l i z
n
e
m
s
o
t
f
f
t
l a
a
u
i g
a
w
P
r
r
a
e
A
r
A
r
t e
t e
r
F
l u
r
R
e
f a
t o
f a
t o
s
p
o
o
e
o
s
s
e
o
ã
i s
s
a
b
i l i d
a
d
D
C
G
G
G
G
L
D
i
l
c
t
p
q
p
e
D
C
G
G
G
G
L
D
r
t o
i r e
t e
n
l i e
t e
n
r e
e
t e
n
r e
e
t e
n
r e
e
t e
n
r e
e
o
d
r
e
í d
o
v
n
e
s
e
t o
r
e
s
l
i a
r c
e
m
o
C
l o
o
n
c
e
T
e
d
s
t o
j e
r o
P
e
d
s
s
e
c
r o
P
e
d
t o
j e
r o
P
r
o
d
e
l v
e
MER
slide 45 de 116
P
r
o
i d
A
c
c
o
s
n
C
g
i a
o
s
e
Q
u
a
l i d
a
o
o
l e
t r
b
n
m
d
a
a
o
A
S
?
P
r
n
a
o
c
l i s
e
d
D
p
e
D
r
a
e
DR
?
S
R
B
Gp Gc
P
d
e
a
<
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
R
<
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
R
<
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
T
<
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
C
<
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
P
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
R
E
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
T
L
<
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
I T
<
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
U
>
t o
j e
r o
P
o
d
o
i g
d
ó
C
<
_
O
>
d
d
m
m
a
a
a
a
<
_
T
O
R
<
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
M
<
V
_
>
t o
j e
r o
P
o
d
.
d
ó
C
<
_
C
>
t o
j e
r o
P
o
d
o
i g
d
ó
C
<
_
F
P
_
>
t o
j e
r o
P
o
d
o
i g
d
ó
C
<
_
C
_
>
t o
j e
r o
P
o
d
o
i g
d
ó
C
<
_
S
V
_
>
t o
j e
r o
P
o
d
o
i g
d
ó
C
<
I _
_
>
t o
j e
r o
P
o
d
o
i g
d
ó
C
<
_
A
_
>
t o
j e
r o
P
o
d
o
i g
d
ó
C
<
_
M
B
A
D
P
P
P
M
P
R
M
P
P
S
U
P
D
D
D
R
R
K
(
o
)
=
O
p
c
i o
n
a
PP
l
N
N
Gc
p
G
e
r
R
e
C
n
c
e
a
r
e
p
r
t r a
i s
g
n
e
m
a
t o
j e
r o
G
A
D
p
G
q
R
n
p
e
e
r
q
F
9
9
9
9
9
9
9
9
9
9
9
9
9
V
<
V
V
<
<
9
<
<
>
>
>
>
<
9
9
9
9
9
PT
d
d
m
>
9
9
. <
>
9
9
. <
>
9
9
. <
>
9
9
. <
9
9
. <
>
>
9
9
<
>
9
9
<
>
9
9
. <
>
9
9
_
V
V
9
9
<
9
9
m
a
>
>
>
>
a
a
9
>
9
9
. <
>
9
9
. <
. <
>
9
9
9
. <
>
9
9
. <
>
9
9
9
. <
>
9
. <
>
9
9
. <
>
9
>
>
9
9
9
>
9
9
9
>
>
>
>
>
r
t
f
e
A
D
P
P
P
M
P
R
M
P
P
S
C
P
D
D
D
R
R
K
a
t
t a
o
r o
r o
l a
o
l a
e
a
e
r o
o
a
o
i a
i a
i a
e
e
n
o
e
r
n
u
e
c
r
r
l i a
o
d
a
e
(
<
p
o
u
q
s
e
i n
r
u
s
o
i
G
p
s
t
n
P
O
R
M
K
o
)
e
p
L
e
d
e
o
d
l t a
t o
u
j e
o
i ã
m
a
i p
a
R
PPF
p
i s
o
i ã
q
v
i
G
p
r
a
l i z
e
d
A
o
d
o
t
G
R
A
r
d
z
t e
n
p
u
d
o
f o
e
d
s
e
r
p
o
d
t o
c
o
t o
o
x
n
o
P
f a
t e
A
P
P
Build Technical
Proposal and
Project Plan
UC
r
c
O
e
r
Encerramento
Encerramento
c
P
s
n
n
o
I
P
T
B
e
D
DR
R
P
e
e
o
t
r
D
l
r i a
t o
D
p
G
a
p
G
q
G
r
a
i n
r
e
a
t r
p
e
e
l i s
a
e
D
r
P
D
n
A
o
t
n
e
u
r
a
d
n
m
e
a
g
i n
c
p
G
e
r
G
q
G
A
S
A
t
B
Gp Di
Build Commercial PC
Proposal
e
D
m
s
o
i ã
n
u
e
R
e
d
s
i t o
i s
u
q
e
R
e
d
t o
n
e
m
u
a
i c
n
c
é
T
t a
s
o
l
i a
r c
e
m
o
C
t a
s
o
t o
j e
r o
P
e
d
o
e
R
e
s
e
d
a
t i d
n
E
e
d
l o
e
t e
s
e
T
e
d
o
e
d
s
t e
n
e
i d
c
I n
e
d
r i o
t ó
r i o
á
u
s
U
o
d
l
a
u
o
i ã
i n
p
O
e
d
a
i s
u
q
I )
t a
s
a
p
a
( N
o
t i p
t ó
s
a
ç
n
a
d
u
M
e
d
o
ã
ç
i t a
l i c
o
s
U
e
d
o
s
o
ã
ç
n
u
F
r
o
p
s
t o
n
s
e
s
s
l a
C
e
d
a
m
r a
g
i a
c
n
ê
u
q
e
S
e
d
a
m
r a
g
o
ã
ç
r a
t e
I n
e
d
a
m
r a
g
o
ã
ç
i t a
e
c
A
e
d
r i o
t ó
l a
o
n
s
r i a
o
l h
e
M
e
d
r i o
t ó
l a
e
s
a
B
e
g
d
l e
w
o
c
p
p
n
d
n
l a
n
c
l a
e
m
a
n
i o
t e
s
e
T
s
P
r
o
c
e
s
s
o
n
t o
s
PT
1
Temos uma
sugestão: Hukars
1. Definir o modelo de negócios
2. Definir a organização da fábrica
3. Definir processo de desenvolvimento
4. Habilitar o trabalho de forma distribuída
5. Prover um site para a fábrica
6. Prover um site exclusivo para cada
novo projeto
7. Definir papéis para cada novo projeto
8. Trabalhar em harmonia
slide 46 de 116
Hukarz
• Fases
slide 47 de 116
Hukarz ...
[email protected],
[email protected],
[email protected]
Hukarz
<<Disciplina>>
Planejamento &
Acompanhamento de
Projetos
<<Disciplina>>
Arquitetura de
Software
<<Disciplina>>
Gerenciamento de
Configuração de
Software
slide 48 de 116
<<Disciplina>>
Gerenciamento de
Requisitos
<<Disciplina>>
Construção
<<Disciplina>>
Testes
<<Disciplina>>
Engenharia de
Processo
e as
pessoas?.
.. mais
complexas
ainda!!
slide 49 de 116
(c) MERX LLC
Fornecimento ou troca de informações,
de idéia ou de sentimento, através de:
PALAVRAS
SINAIS
GESTOS
slide 50 de 116
PROCESSAMENTO
INTERNO
EVENTOS EXTERNOS
OMISSÕES, CRENÇAS,
VALORES E OBJETIVOS
REPRESENTAÇÃO
INTERNA
•IMAGENS
•SONS E PALAVRAS
•SENSAÇÃO
(MOTIVAÇÃO,SATISFAÇÃO)
slide 51 de 116
APRESENTAÇÃO DE
INFORMAÇÃO
•VERBAL
•NÃO VERBAL
Três Estágios de Percepção
• Estágio de EXPOSIÇÃO – os consumidores recebem
informação através de seus sentidos.
• Estágio de ATENÇÃO – os consumidores alocam
capacidade de processamento a um estímulo.
• Estágio de COMPREENSÃO – os consumidores
organizam e interpretam a informação para obter
significado a partir dela.
slide 52 de 116
O QUE SE VÊ?
slide 53 de 116
RESPOSTA:
• TRÊS COLUNAS E NÃO TRÊS LINHAS,
POR QUÊ?
• OS ELEMENTOS MAIS PRÓXIMOS TENDEM
A SER AGRUPADOS.
slide 54 de 116
slide 55 de 116
RESPOSTA
• TRÊS LINHAS E NÃO QUATRO COLUNAS,
POR QUÊ?
• OS ELEMENTOS SEMELHANTES SÃO
AGRUPADOS.
slide 56 de 116
slide 57 de 116
slide 58 de 116
slide 59 de 116
slide 60 de 116
slide 61 de 116
slide 62 de 116
O que a gente não quer?
esse tipo de
No, not that kind!
“institutionalization”!
Fonte: Process Implementation, Sarah Sheard.
slide 63 de 116
Software Productivity Consortium. July 3, 2003
https://www.goldpractices.com//practices/ippd/
CASES
• Bons Times
• Excelentes Projetos
• Excelentes Técnicas
VISITAR FÁBRICAS 2008, 2007, 2006...
slide 64 de 116
CASOS DE SUCESSO (at work )...
•CESAR.edu 2008
•http://kport.cesar.edu.br
•http://h3s.cesar.edu.br
•http://geemap.cesar.edu.br
•CIn-UFPE 2008
•http://tsapiens.cin.ufpe.br/
•http://www.factory2u.net/
•http://init.cin.ufpe.br/
•https://efact.cin.ufpe.br/joomla/
•CESAR.edu 2007
•http://whereis.cesar.edu.br
•http://fire.cesar.edu.br
•http://xfactory.cesar.edu.br
•http://core.cesar.edu.br
•TODA A HISTÓRIA
•http://200.17.137.110:8080/in953
slide 65 de 116
ROTEIRO
1. Conceitos, idéias e mitos
2. Processos e Casos de sucesso e falha
3. Oficina de Montagem de Fábricas
4. Venda de Software
slide 66 de 116
Building a Software Factory — Step by Step
1. Definir o modelo de negócios
2. Definir a organização da fábrica
3. Definir processo de desenvolvimento
4. Habilitar o trabalho de forma distribuída
5. Prover um site para a fábrica
6. Prover um site exclusivo para cada novo projeto
7. Definir papéis para cada novo projeto
0. Trabalhar em harmonia
slide 67 de 116
1.Definir o modelo de negócios
• Que modelos são apropriados?
– http://www.opensourcestrategies.org/
– http://www.informationweek.com/blog/main/archives/2008/01/the
_five_open_s.html
• Que tipos de serviços?
– http://www.cio.com/article/17649/Your_Guide_to_Open_Source_
Business_Models
• Colaboradores externos
• Licença...
– http://www.opensource.org/licenses
Aspectos de Propriedade Intelectual
– http://www.museu-goeldi.br/institucional/i_prop_propintel.htm
• Análise SWOT
– http://www.businessballs.com/swotanalysisfreetemplate.htm
slide 68 de 116
2.Definir a organização da fábrica
• Gerência organizacional
– Comitê de Gerenciamento
– Vendas
– Pesquisa e Desenvolvimento
– Produtos
– Finanças
– Biblioteca de Componentes
– Qualidade, etc
Vide Peter Drucker em
http://www.lgti.ufsc.br/O&m/aulas/Aula1/paradg
mas%20adm.htm
slide 69 de 116
2.Definir a organização da fábrica
slide 70 de 116
3.Definir processo de desenvolvimento
•
•
•
•
Flexível
Leve
Iterativo
Incremental
• Propostas?
• vide RUP, Hukarz, SCRUM, XP e suas
variantes XRUP, SCRUP…
slide 71 de 116
4.Habilitar o trabalho de forma distribuída
• Organização virtual
• Comunicação Assíncrona
– Listas de discussão
– Web site
• Comunicação Síncrona
– Encontros
– IM
• SCM (gerência de configuração)
• Issue tracker
• Blogs
• vide
– DDS – Desenvolvimento Distribuído de Software
– GDS – Global Development Software
– WDDS – Workshop de Desenvolvimento Distribuído de Software
slide 72 de 116
5.Prover um site para a fábrica
•
•
•
•
•
•
Missão
Processo de desenvolvimento
Notícias
Membros dos times
Projetos e soluções
Etc...
• Vendas de Software
slide 73 de 116
6.Prover um site exclusivo para cada novo projeto
• Visibilidade interna e externa
– News
– Artefatos
– Downloads
– Informações do projeto
slide 74 de 116
7.Definir papéis para cada novo projeto
• Alocar papéis
• Vide MBTI, …
– Classificação Tipológica de Myers
Briggs (geralmente abreviado
para MBTI pelo termo em inglês).
– Este método utiliza-se de quatro dicotomias
distintas (Introversão-Extroversão, SensaçãoIntuição, Razão-Sentimento e JulgamentoPercepção), baseadas no trabalho de Carl
Jung, que indicam características pessoais de
forma geral.
slide 75 de 116
0.Trabalhar em harmonia
slide 76 de 116
0.Trabalhar em harmonia
slide 77 de 116
Referências Bibliográficas
Livros
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Abran, A. and Moore, J.W. and Bourque, P. and Dupuis, R. (eds). Guide to the Software Engineering Body of
Knowledge (SWEBOK). IEEE Press, 2004.
Chrissis, M. B. and Konrad, M. and Shrum, S. CMMI(R): Guidelines for Process Integration and Product
Improvement (2nd Edition) (The SEI Series in Software Engineering). Addison-Wesley Professional, 2006.
Clements., M. P. and L. Northrop., Software Product Lines: Practices and Patterns. Addison-Wesley, 2002.
D’Souza, D. F. and Wills, C. A. Objects, Components, and Frameworks with UML – The Catalysis Approach.
Addison-Wesley, 1999.
Greenfield, J. and Short, K. and Cook, S. and Kent, S. and Crupi, J. Software Factories: Assembling Applications
with Patterns, Models, Frameworks, and Tools. John Wiley, 2004, 500p.
Heineman, G., T., Council, W., T. Component-Based Software Engineering: Putting the Pieces Together, AddisonWesley. 2001.
Humphrey, W. PSP(sm) : A Self-Improvement Process for Software Engineers (SEI Series in Software
Engineering). Adison Wesley professional, 2005, 368p.
Humphrey, Watts S. 1989. Managing the software process. Boston, MA, USA: Addison - Wesley Longman
Publishing Co., Inc.
Jacobson, Ivar, Booch, Grady, & Rumbaugh, James. 1999. The unified software development process. Boston,
MA, USA: Addison-Wesley Longman Publishing Co., Inc.
Lenz, G. and Wienands, C. Practical Software Factories in .NET. Apress, 2006, 240p.
McIlroy, M. D. 1968. Mass Produced Software Components. Pages 79–85 of: Naur, P., & Randell, B. (eds), NATO
Software Engineering Conference Report.
Pereira, A. Vendendo Software. Novatec Editora, 2004, 160p.
Pressman, R. Engenharia de Software. McGraw-Hill Interamericana do Brasil, 2003, 6ª. Edição, 752p.
Raymond, Eric S. The Cathedral and the Bazaar. Sebastopol, CA, USA: O’Reilly & Associates, Inc, 1999.
Sametinger, J. Software Engineering with Reusable Components. Springer-Verlag, 1997.
Referências Bibliográficas
Livros
•
Williams, J. The Business Case for Components, In Component-Based Software Engineering: Putting the Pieces
Together, Addison-Wesley, 2001.
Artigos – Periódicos
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Brown, A., Wallnau, K. The Current State of CBSE, IEEE Software, Oct , 1998.
Cusumano, M. A. 1989. The Software Factory: A Historical Interpretation. IEEE Softw., 6, 23–30. 2.4
DeLano,Warren L. 2005. The case for open-source software in drug discovery. Drug Discovery Today, 10(3), 213–
217.
Favaro, J. What Price Reusability? A Case Study, ADA Letters, Mar, 1991.
Frakes, W., B., Isoda, S. Success Factors of Systematic Software Reuse. IEEE Software, Sep, 1994.
Frakes, W., B., Fox, C., J. Sixteen Questions about Software Reuse. Communications of the ACM, June, 1995.
Fuggetta, Alfonso. 2003. Controversy corner: open source software-an evaluation. J. Syst. Softw., 66(1), 77–90.
Glass, R. Reuse: What’s wrong with this picture?, IEEE Software, Mar, 1998.
Griss, M., Wosser, M. Making Reuse Work at Hewlett-Packard, IEEE Software, 1995.
Highsmith, Jim, & Cockburn, Alistair. 2001. Agile Software Development: The Business of Innovation. Computer,
34(9), 120–122.
Joos, R. Software Reuse at Motorola, IEEE Software, Sep, 1994.
Lamers, S. Programmers at Work, Microsoft Press, 1986.
Mills, H. D., O’Neill, D., Linger, R. C., Dyer, M., & Quinnan, R.E. 1980. The management of software engineering.
IBM Syst. J., 19(4), 414–477.
Moraes, A. K. O., Meira, S. R. L., & Albuquerque, J. O. 2007a. Building real F/OSS software factories: How to
create development communities around outside requirements. In: St.Amant, K., & Still, B. (eds), Handbook of
Research on Open Source Software: Technological, Economic,and Social Perspectives. Idea Group Reference (to
appear).
Morisio, M., Ezran, Tully, C. Success and Failure Factors in Software Reuse, IEEE Transactions on Software
Engineering, Apr, 2002.
Referências Bibliográficas
Artigos – Periódicos
•
•
•
•
•
•
•
•
R. D. Battin, R. Crocker, and J. Kreidler, "Leveranging resource in Global Software Development," IEEE Software,
2001.
R. Prikladnicki, "MuNDDoS Um modelo de Referência para o Desenvolvimento Distribuído de Software."
Dissertação de mestrado da PUCRS, Porto Alegre, 2003.
Schiff, Aaron. 2002. The Economics of Open Source Software: A Survey of the Early Literature. The Review of
Network Economics, 1(1), 66–74.
Sharma, S., Sugumaran, V., & Rajagopalan., B. 2002. A framework for creating hybrid-open source software
communities. Information Systems Journal, 12, 7–25.
Softex. 2005. O impacto do software livre e de código aberto na indústria de software do Brasil. Tech. rept.
Softex, Campinas, SP.
Software Engineering Institute. Market Assessment of Component-Based Software Engineering, Technical Report,
May, 2000.
Sommerville, Ian. 1996. Software process models. ACM Comput. Surv., 28, 269–271.
Travasso, G., Gurov, D., & Amaral, E. 2002. Introduction to Experimental Software Engineering. Tech. rept.
Universidade Federal do Rio de Janeiro, Relatório Técnico RT-ES-590/02.
Artigos – Conferências
•
•
•
Aaen, I., Botcher, P., & Mathiassen., L. 1997. Software factories: Contributions and illusions. In: Proceedings of
the Twentieth Information Systems Research Seminar.
Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. 2002. Agile software development methods: Review and
analysis. Pages 107–218 of: ESPOO 2002, vol. 478. VTT Publications.
Abrahamsson, P. and Warsta, J. and Siponen, M. T. and Ronkainen, J. 2003. New directions on agile methods: a
comparative analysis. Pages 244–254 of: ICSE ’03: Proceedings of the 25th International Conference on Software
Engineering. Washington, DC, USA: IEEE Computer Society.
Referências Bibliográficas
Artigos – Conferências
•
•
•
•
•
•
•
•
•
Agerfalk, P.J., Fitzgerald, B., Holmstrom, H., Lings, B., Lundell, B., & o Conchuir, E. 2005. A Framework for
Considering Opportunities and Threats in Distributed Software Development. Pages 47–61 of: DiSD ’05:
Proceedings of the International Workshop on Distributed Software Development. Paris, France: Austrian
Computer Society.
Albuquerque, J. O., Meira, S. R. L., & Moraes, A. K. O. 2006. Software Engineering in Practice: Building Software
Factories. Pages 49–50 of: ESELAW ’06: Proceedings of the 3rd Experimental Software Engineering Latin
American Workshop.
Bemer, R. W. 1968. Position Paper for the Panel Discussion on the Economics of Program Production. Pages
1626–27 of: Proceedings of Information Processing 68, vol. 2.
Boehm, Barry. 2006. A view of 20th and 21st century software engineering. Pages 12–29 of: ICSE ’06: Proceeding
of the 28th international conference on Software engineering. New York, NY, USA: ACM Press.
Cavalcanti, A. P. C., Lucena, L. R., Lucena, M. J. N. R., Moraes, A. K. O., Fernandes, D. Y. S., Pereira, S. C.,
Albuquerque, J. O., & Meira, S. R. L. 2005. Towards an Open Source Software Factory. In: ESELAW ’05:
Proceedings of the 2nd Experimental Software Engineering Latin American Workshop.
Greenfield, Jack, & Short, Keith. 2003. Software factories: assembling applications with patterns, models,
frameworks and tools. Pages 16–27 of: OOPSLA ’03: Companion of the 18th annual ACM SIGPLAN conference
on Object-oriented programming, systems, languages, and applications. New York, NY, USA: ACM Press.
Hansen, Bo Hansen, & Kautz, Karlheinz. 2005. Grounded Theory Applied - Studying Information Systems
Development Methodologies in Practice. Page 264.2 of: HICSS ’05: Proceedings of the Proceedings of the 38th
Annual Hawaii International Conference on System Sciences (HICSS’05) - Track 8. Washington, DC, USA: IEEE
Computer Society.
Herbsleb, James D., Mockus, Audris, Finholt, Thomas A., & Grinter, Rebecca E. 2001. An empirical study of
global software development: distance and speed. In: ICSE ’01: Proceedings of the 23rd International Conference
on Software Engineering. Toronto, Ontario, Canada: IEEE Computer Society. 381481 81-90.
Herbsleb, James D., Paulish, Daniel J., & Bass, Matthew. 2005. Global software development at siemens:
experience from nine projects. Pages 167–173 of: ICSE ’05: Proceedings of the 27th international conference on
Software engineering. St. Louis, MO, USA: ACM Press.
Referências Bibliográficas
Artigos – Conferências
•
•
•
•
•
•
•
•
•
•
•
•
Moraes, A. K. O., Meira, S. R. L., & Albuquerque, J. O. 2006. Open Source Software Factory — Step by Step: A
Case Report. Pages 46–51 of: Héphaïstos ’06: Proceedings of the First International Conference on Open Source
Collaborative Development Platforms. 4.1, 4.2, 7
Moraes, Alan Kelon Oliveira, de Lemos Meira, Silvio Romero, & de Albuquerque, Jones Oliveira. 2007b (June).
Open Source Software Factories: Pushing the Software Engineering into the Open Source Development. In: OSS
’07: Proceedings of the Third IFIP International Conference on Open Source Systems.
Perry, Dewayne E., Porter, Adam A., & Votta, Lawrence G. 2000. Empirical studies of software engineering: a
roadmap. Pages 345–355 of: ICSE ’00: Proceedings of the Conference on The Future of Software Engineering.
New York, NY, USA: ACM Press.
Ribeiro, R. A., Silva, F. Q. B., Moraes, A. K. O., Albuquerque, J. O., & Meira, S. R. L. 2006. Towards a software
licensing guide for Open Source Business Models. Pages 52– 62 of: Héphaïstos ’06: Proceedings of the First
International Conference on Open Source Collaborative Development Platforms.
Siy, Harvey P., Herbsleb, James D., Mockus, Audris, Tucker, George T., &Krishnan, Mayuram. 2001. Making the
Software Factory Work: Lessons from a Decade of Experience. Pages 317–326 of: METRICS ’01: Proceedings of
the 7th international Symposium on Software Metrics. IEEE Computer Society, Washington, DC.
Tartarelli, R. V., Winckler, W. S., e Kronmeyer, O. R. F. "Aprendizagem organizacional em fábricas de software".
PMI-RS.Disponível em: http://www.pmirs.org/Estudos/Rubens.pdf, 2005.
V. Gruhn, "Process-Centered Software Engineering Environments, A Brief History and Future Challenges," 2002.
Wine. 2006. Wine HQ. Disponível em http://www.winehq.com/.
5th ICSE Workshop on Component-Based Software Engineering, Benchmarks for Predictable Assembly, In
conjunction with the 24th International Conference on Software Engineering, (ICSE), May, 2002.
Griss, M. Software Reuse Experience at Hewlett-Packard, 16th International Conference on Software Engineering,
(ICSE), May, 1994.
Mehta, A., Heineman, G., T. Evolving Legacy System Features into Fine-Grained Components, In 24th
International Conference on Software Engineering (ICSE). ACM Press, 2002.
Rine, D, C. Success Factors for Software Reuse that are applicable across Domains and Businesses, ACM
symposium on Applied Computing, Mar, 1997.
Referências Bibliográficas
Artigos – Conferências
•
•
•
Visser, W. Strategies in Programming Programmable Controllers: A field study of Programmers, Workshop, 1987.
7th International Workshop on Component-Oriented Programming (WCOP) in conjunction with the 16th European
Conference on Object-Oriented Programming (ECOOP), Málaga, Spain, 2002.
Werner, C.; Braga, R. Desenvolvimento Baseado em Componentes, In XVI Simpósio Brasileiro de Engenharia de
Software, Minicursos, João Pessoa, Paraíba, 2000.
Download

Fábricas de Software