Fábrica de Software
-
Upload
vinicius-garcia -
Category
Education
-
view
848 -
download
6
description
Transcript of Fábrica de Software
Fábrica de So-ware
Centro de Informá-ca -‐ Universidade Federal de Pernambuco Sistemas de Informação Vinicius Cardoso Garcia
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
[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
[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
4
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
h[p://homepages.cs.ncl.ac.uk/brian.randell/NATO/index.html
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
[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
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
7
[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
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
Fábricas de So-ware
• Princípios
• Conceitos
• Ilusões
9
[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
10
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
[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]
Fábrica de so-ware na práHca
• E o mercado? – h[p://mshiltonj.com/soLware_wars/
11
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
12
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
13
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
14
[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
15
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
Fonte: h[p://catb.org/~esr/wri-ngs/cathedral-‐bazaar/cathedral-‐bazaar/
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
[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”
17
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
[Aaen, Botcher, Mathiassen, SoLware Factories, 1997] h[p://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf
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
[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
[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
[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
[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
[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”
23
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
[Aaen, Botcher, Mathiassen, SoLware Factories, 1997] h[p://www.cs.auc.dk/~larsm/Dr_Techn/Volume_II/17.pdf
...e ilusões...
24
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
fábrica de soLware ≠ produção em massa
padronização, formalização, especialização,
controle ≠ produção de soLware com qualidade
o que fazer?
Fonte: www.icb.ufmg.br
Building a so-ware factory…
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
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
[Making the soLware factory work... 1990-‐1999] h[p://doi.ieeecomputersociety.org/10.1109/METRIC.2001.915539
Lições aprendidas
• separa-ng func-on of process engineer from developer
• job rota-on between process engineering and product development
26
[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
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
Processo é complexo... Ex.: Ampla
28
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
E l a b o r a d o : O J S - R e v i s ã o : C A B , J P M L , G M R - A p r o v a d o : C A B - V e r s ã o 0
F á b r i c a d e S o f t w a r e d a A m p l a C o n s u l t o r i a e m I n f o r m a ç ã o
Pro
spec
ção
Exec
ução
P L T
Exec
ução
Pro
post
aP
ropo
sta
Ence
rram
ento
Gar
antia
Exe
cuçã
o
P PP P
P C
P CP P P P
P R O T
P P F
P T
D R
P C
P C P R O TD RP TP P F
M E R
D R
P P F
P T
P C
P P F
P P
P T
M E R
U C
M E R
U C
D R
D RD R
M E R
U C
D R
P R O T
D R
D RP R O T
D R
U C
A R
M E R
P R O T
N
S
N
S
S
N
O K ?
R e v i s a rR e q u i s i t o s ,
i n t e r f a c e s , c a s o sd e u s o e M E R
G c
C r i a r P r o p o s t aC o m e r c i a l
L í d e r E q u i p e 2
V a l i d a r r e q u i s i t o s
C r i a r P r o p o s t aT é c n i c a e P l a n o
d e P r o j e t o
V a l i d a r i n t e r f a c e se r e q u i s i t o s
T é c n i c o s
C l
L í d e r E q u i p e 1
G c
G e r e n t e d e P r o j e t o s
D i
A g e n d a r v i s i t a sp a r a a p r e s e n t a ç ã o
e / o u e l i c i t a ç ã o d er e q u i s i t o s
D i r e t o r
I d e n t i f i c a rd e m a n d a s q u e
p o s s a m s e ra t e n d i d a s p e l a s
á r e a s d ec o n h e c i m e n t o
G p
P r o j e t a r i n t e r f a c e s
T é c n i c o s
G c
C l i e n t e
R e q u i s i t o s / e s c o p oe s t ã o c l a r o s ?
G p
P r o t o t i p a ri n t e r f a c e s
P r o j e t a ri n t e r f a c e s ?
1
T é c n i c o s
D e
G e r e n t e C o m e r c i a lG e r e n t e d e T e c n o l o g i a
G e r e n t e d e P r o c e s s o s e Q u a l i d a d e
I n í c i o
G p
L í d e r E q u i p e n
A n á l i s e d e P o n t o sd e F u n ç ã o
G c D i
G c G p
G cC l G p
G p
G p G c
G p
N
S
S R e v i s õ e s ?
P r o j e t oa p r o v a d o ? C
1
R e g i s t r a rs u s p e n s ã o d o
p r o j e t o
A p r e s e n t a r P C ,P T e D R
R e v i s a r D R , P T ,P P F , P C e P R O T .
D i G pG c
G p
N
S R e n e g o c i a r ?
R e v i s a rc r o n o g r a m a
R e v i s a r P r o p o s t aC o m e r c i a l
A v a l i a r r i s c o s
P r e p a r a r a m b i e n t ed e
d e s e n v o l v i m e n t o
L p
L p
R e a v a l i a rn e c e s s i d a d e s d e
t r e i n a m e n t o
L p
G p
R e a v a l i a r r e c u r s o sh u m a n o s ,
s o f t w a r e eh a r d w a r e
L pG p
L p
G p G cD i
S
S
N
S
N
S
N
N
S
S N
F i m
P P
O K ?
M E R M E R
D R
I m p l e m e n t a r
A
P r o j e t a r b a n c o d ed a d o s
P T
A p r e s e n t a rr e q u i s i t o p a r a
d e s e n v o l v e d o r
P C
D S ( o )
BI n t e g r a r ?
C o r r i g i r
P r e p a r a r P l a n o d eT e s t e
L p
B
S o l i c i t a ç ã o d em u d a n ç a s
P L T
S M
S e l e c i o n a rr e q u i s i t o
C l
A v a l i a r s o l i c i t a ç ã o
D R
P L T
P r o b l e m a s n ai m p l e m e n t a ç ã o ?
R e a l i z a r T e s t e d eU n i d a d e
C o m u n i c a r L í d e rd o P r o j e t o
P C
R e v i s a r r e q u i s i t o s ,p l a n o d e p r o j e t o
D e
R e a l i z a r c a s o s d eu s o
D e
D I ( o ) N ã oc o n f o r m i d a d e s ?
P P
D S ( o )
A g e n d a r r e u n i ã oc o m c l i e n t e
M E R
P T
B-1
P C
A p r o v a rm u d a n ç a s ?
P L T
D R
L p
P P
A
D I ( o )
P P
R e v i s a r r e q u i s i t o se p l a n o d e p r o j e t o
3
D R
R e n e g o c i a r
P T
L p
P T
P o d e s e r r e s o l v i d oi n t e r n a m e n t e ?
A - 1
B - 2
E n c e r r a rs o l i c i t a ç ã o
D C
B-2
E s p e c i f i c a r c a s o sd e t e s t e d e
u n i d a d e
A - 2
P C
R I T
L p
G p
D C
G pS M
I n í c i o
D e
G c
S M
L p
G p G c
G p G c
L pC l
D i
G pL p
L p
D e
D e
S
N
S
N
P P
B
N ã oc o n f o r m i d a d e s ?
P P
P P
3
R I T
A n a l i s a r n ã oc o n f o r m i d a d e s e
p l a n e j a ri m p l e m e n t a ç ã o
G p
R I T
D eG q
A n a l i s a r n ã oc o n f o r m i d a d e s e
p l a n e j a ri m p l e m e n t a ç ã o
B
R e a l i z a r T e s t e d eS i s t e m a
R e a l i z a r T e s t e d eI n t e g r a ç ã o
N ã oc o n f o r m i d a d e s ?
NS
N
S
S
N
I n i c i a r p e r í o d o d eg a r a n t i a
( 9 0 d i a s )
A n a l i s a r
G q
P P
P r e p a r a r m a t e r i a ld e t r e i n a m e n t o
P O
P P
B
D R
D e
A g e n d a rt r e i n a m e n t o
G p
B
R e a l i z a rt r e i n a m e n t o
D RP r o b l e m ae n c o n t r a d o ?
P T
G p
P C
I n s t a l a r ec o n f i g u r a r
s o f t w a r e
A c e i t a ç ã o t o t a lo u p a r c i a l ?
P r o c e d e ?
A n a l i s a r
D R
D e
A R
T e s t e d ea c e i t a ç ã o
( c o m c l i e n t e )
D e
D eG p
R e a l i z a r p e s q u i s ad e o p i n i ã o
C
R e u n i ã o d ee n c e r r a m e n t o
( e q u i p e )
R M
K B
D e
G p
A R
D i
G p
A v a l i a r r e s u l t a d o sd o p r o j e t o
G q
L p
R e g i s t r a re n c e r r a m e n t o d o
p r o j e t o
F i m
P O
G p
A r t e f a t o
A r t e f a t o f o n t e
A r t e f a t o p r o d u z i d o
F l u x o d o p r o c e s s o
P r o c e s s o
P o n t o d e d e c i s ã o
R e s p o n s a b i l i d a d e
D i D i r e t o rC l C l i e n t eG c G e r e n t e C o m e r c i a lG t G e r e n t e d e T e c n o l o g i aG p G e r e n t e d e P r o j e t o sG q G e r e n t e d e P r o c e s s o s e Q u a l i d a d eL p L í d e r d o P r o j e t oD e D e s e n v o l v e d o r
A t o r e s
A r t e f a t o s
A R _ < C ó d . d o P r o j e t o > _ < a a a a m m d d > A t a d e R e u n i ã oD R _ < C ó d . d o P r o j e t o > _ V < 9 9 > . < 9 9 > D o c u m e n t o d e R e q u i s i t o sP T _ < C ó d . d o P r o j e t o > _ V < 9 9 > . < 9 9 > P r o p o s t a T é c n i c aP C _ < C ó d . d o P r o j e t o > _ V < 9 9 > . < 9 9 > P r o p o s t a C o m e r c i a lP P _ < C ó d . d o P r o j e t o > _ V < 9 9 > . < 9 9 > P l a n o d e P r o j e t oM E R _ < C ó d . d o P r o j e t o > _ V < 9 9 > . < 9 9 > M o d e l o d e E n t i d a d e s e R e l a c i o n a m e n t o sP L T _ < C ó d . d o P r o j e t o > _ V < 9 9 > < 9 9 > P l a n o d e T e s t eR I T _ < C ó d . d o P r o j e t o > _ V < 9 9 > < 9 9 > R e l a t ó r i o d e I n c i d e n t e s d e T e s t eM U _ < C ó d . d o P r o j e t o > _ V < 9 9 > . < 9 9 > M a n u a l d o U s u á r i oP O _ < C ó d i g o d o P r o j e t o > P e s q u i s a d e O p i n i ã oP R O T _ < a a a a m m d d > P r o t ó t i p o ( N a p a s t a I )S M _ < C ó d . d o P r o j e t o > _ V < 9 9 > . < 9 9 > S o l i c i t a ç ã o d e M u d a n ç a sU C _ < C ó d . d o P r o j e t o > _ V < 9 9 > . < 9 9 > C a s o d e U s oP P F _ < C ó d i g o d o P r o j e t o > _ V < 9 9 > . < 9 9 > P o n t o s p o r F u n ç ã oD C _ < C ó d i g o d o P r o j e t o > _ V < 9 9 > . < 9 9 > D i a g r a m a d e C l a s s e sD S _ < C ó d i g o d o P r o j e t o > _ V < 9 9 > . < 9 9 > D i a g r a m a d e S e q u ê n c i aD I _ < C ó d i g o d o P r o j e t o > _ V < 9 9 > . < 9 9 > D i a g r a m a d e I n t e r a ç ã oR A _ < C ó d i g o d o P r o j e t o > _ V < 9 9 > . < 9 9 > R e l a t ó r i o d e A c e i t a ç ã oR M _ < C ó d i g o d o P r o j e t o > _ V < 9 9 > . < 9 9 > R e l a t ó r i o d e M e l h o r i a s n o P r o c e s s oK B K n o w l e d g e B a s e
( o ) = O p c i o n a l
G p D eG q
G pC l
G pG q
G q
G q G p D e
G q
P P
R A
Encerramento
MER
DR
PPF
PT
PC
PPF
PP
PT
MER
UC
MER
UC
DR
DRDR
MER
UC
DR
ReviseRequirements,
interfaces, E-Rand Use Cases
Gc
Build CommercialProposal
Build TechnicalProposal and
Project Plan
DiGc
Gp
1
Gp
Function PointAnalysis
Gp Gc
Gp
Contrato
Execução
Entrega
Prospecção
29
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
o PROCESSO é complexo!
30
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
e as pessoas?...
31
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
Trabalho em equipe
32
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
O trabalho em equipe é um processo baseado em princípios e valores que estão claramente definidos e entendidos. O verdadeiro trabalho em equipe é um processo contínuo interativo de um grupo de pessoas aprendendo, crescendo e trabalhando interdependentemente para alcançar metas e objetivos específicos no suporte a uma missão comum.
ORGANIZAÇÕES ESTRUTURAIS X BASEADAS EM HABILIDADES
33
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
ORGANIZAÇÕES TRADICIONAIS:
ü Realizam tarefas funcionais; ü Pessoa em segundo plano; ü O controle é a meta;
ü Visão a curto prazo; ü Informação, formação, e
incen-vos, não são importantes; ü Repetem os ciclos de
reestruturação e regressão.
ORGANIZAÇÕES BASEADAS EM HABILIDADES:
ü Realizam bem, as tarefas com funções cruzadas;
ü As pessoas são valorizadas; ü A meta é valorizar o que cons-tui
valor para os clientes; ü Visão a longo prazo; ü Informação, formação e incen-vos,
são importantes; ü Criam um padrão de melhoria
permanente.
34
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
h[p://www.springerlink.com/content/l4216085h77324q6/
Rules and Tools for so-ware evoluHon planning and Management
• Con-nuing change • Increasing complexity • Con-nuing growth • 10 regras... 1 princípio.. de incerteza!...
the real world outcome of any so2ware execu4on is inherently uncertain with the precise area of uncertainty also not knowable
E O FUTURO, O QUE ESPERAR?
35
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
COMUNIDADE DESENVOLVE / COMBINA [NOVOS] PRODUTOS E SERVIÇOS
36
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
37
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
38
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
SaaS SoLware as a Service
39
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
Marc Benioff, CEO, Salesforce.com
40
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
empresa como
SERVIÇO
41
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
a serviço de sua
comunidade
42
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE
comunidade que
INOVA
O Que fazer agora?
• Montar uma fábrica de soLware!
• Como?
• Em ~4 meses!?!?!?
43
[if977] Engenharia de So-ware -‐ CIn -‐ UFPE