Você está na página 1de 69

Processos de Software:

Conceitos Bsicos

Modelos de Processo

Agenda
Definio de Processos
Objetivos
Componentes
Conceitos Bsicos
Exemplos

Modelos de Processo

Processo
O que ?
Um conjunto de atividades que recebem insumos, transformando-os, de acordo com
uma lgica pr-estabelecida e com agregao de valores, em produtos / servios para
responderem s necessidades dos clientes / usurios.

Atividades

Insumos

Lgica
de
Transformao

Produtos
Servios
Resultados

Modelos de Processo

Processo de Desenvolvimento
No confundir com processo de negcio!
Processo de Negcio:
Um grupo de atividades relacionadas de forma lgica que usa os recursos da
organizao para fornecer resultados definidos em apoio aos objetivos da
organizao. Foco nos objetivos estratgicos da organizao.

Processo de Desenvolvimento:
Um conjunto de passos ordenados e executados com o objetivo de alcanar uma
meta. No caso de desenvolvimento de software, a meta consiste em criar um software
ou desenvolver um j existente.
Pode ser visto como um processo de negcio aplicado a objetivos especficos.

Modelos de Processo

Processo de Desenvolvimento
Do que composto?
Um processo de desenvolvimento de software possui 4 etapas bsicas:
Especificao
definio das funcionalidades do software e premissas para sua execuo
Projeto
construo do software de acordo com a especificao
Validao
validao do software para verificar se ele atende as necessidades dos
usurios
Evoluo
evoluo do software de modo a atender as modificaes das necessidades
dos usurios

Modelos de Processo

Objetivos
Processos de software visam assegurar o desenvolvimento de software:
com prazos e necessidade de recursos definidos
com elevada produtividade (de forma econmica)
com qualidade assegurada

Processos permitem
organizar
instrumentar
planejar
acompanhar projetos
treinar equipes

Modelos de Processo

Processo de Desenvolvimento
Sem o uso de processos....
Procedimentos existentes na organizao no so documentados e usados de forma
consistente na prtica
Erros so cometidos repetidamente
Dificuldade de prever cronogramas e oramentos
Alto ndice de defeitos, retrabalho e desperdcio
Dificuldade de implementar boas prticas e lies aprendidas
Dificuldade de realizar aes para preveno de defeitos

Modelos de Processo

Efeito do Processo sobre o Custo


Risco e valor
mantidos iguais

C
u
s
t
o
Qualidade

Processo
ruim
mediano
bom

Modelos de Processo

Componentes de Processos
Procedimentos e mtodos
definindo os relacionamentos
entre as tarefas e atividades

Artefatos
gerados

Insumos

PROCESSO

Pessoas com habilidades,


treinamentos e motivao

Ferramentas
e equipamentos

Modelos de Processo

Conceitos Bsicos
Artefato
um resultado de uma atividade, exemplos
documento revisto e aceito
mdulo implementado, testado e aceito
construto integrado, testado e aceito
framework documentado, implementado, testado e aceito
quando entregue ao usurio (cliente) o artefato um produto

Insumo
elemento necessrio para a realizao de uma tarefa ou atividade
pode ser um elemento de sada de outras atividades ou tarefas

Modelos de Processo

Conceitos Bsicos
Tarefa
uma ao desempenhada por alguma pessoa visando a realizao ou
monitoramento do projeto
no representa uma evidncia de progresso no desenvolvimento
ter trabalhado 20 horas no implica ter produzido um artefato de qualidade,
mesmo que se tenha estimado serem necessrias 20 horas para o seu
desenvolvimento
consome recursos - consumo real
esforo (tempo de pessoa)
equipamento
financeiro

Modelos de Processo

Conceitos Bsicos
Atividade
conjunto de tarefas que levam a um ou mais artefatos de qualidade controlada
representa uma evidncia de progresso no desenvolvimento
os artefatos resultantes existem e podem ser usados
permite o controle da qualidade do resultado
num extremo pode ser a mera constatao que o resultado existe
no outro extremo pode envolver tcnicas muito avanadas de controle da
qualidade
o esforo medido atravs das tarefas constituintes

Atividades so mini-projetos
possuem incio e fim definidos
consomem um volume finito de recursos
produzem artefatos definidos
possuem critrios de concluso estabelecidos

Modelos de Processo

Conceitos Bsicos
Ferramentas e equipamentos
auxiliam a execuo das atividades e tarefas dos processos
podem automatizar partes da execuo das atividades e tarefas
agilizam a execuo dos processos

Papel
descreve como as pessoas se comportam no processo e quais so as
responsabilidades que elas tm
requer habilidades especficas necessrias
papis no so pessoas
pessoas executam papis

Modelos de Processo

Exemplo de Atividades Relacionadas a Papel

Tarefas
Analista de Testes

Identificar objetivos
do teste

Identificar idias
do teste

Definir detalhes
do teste

Definir necessidades
de avaliao e
rastreabilidade

Determinar resultados
do teste

Verificar mudanas
no build

Modelos de Processo

Exemplo de Atividade
Atividade: Realizar estimativas para o projeto
Descrio
A partir do escopo preliminar do projeto, detalhar as atividades necessrias a sua realizao, as
estimativas de consumo de recursos, os prazos e oramentos.

Papel:
Gerente de Projeto

Artefatos de Entrada:
Escopo do projeto; Plano do projeto; Acordo de servio; Estrutura analtica do projeto (EAP)

Artefatos de Sada:
Estimativas de custo da atividades; Estimativa de esforo das atividades, Cronograma e Plano do
projeto atualizados

Tarefas:
Detalhar atividades e recursos; Detalhar cronograma; Detalhar estimativa de custo das atividades;
Detalhar oramento do projeto

Processos de Software:
Conceitos Bsicos

Modelagem de Processos de Software

Modelos de Processo

Agenda
Objetivos da Modelagem de Processos
Exemplo

Modelos de Processo

Objetivos
Processos de software podem ser melhorados atravs da padronizao dos
processos utilizados dentro de uma organizao.
A modelagem de processos torna-se essencial para a definio de processos
eficientes, capazes de serem replicados.
Modelagem de processos inclui responder as seguintes perguntas:
O qu?
Como?
Quem?
Quando?
Por qu?

Ferramentas: CFPM (Cross Functional Process Map), diagramas de blocos,


fluxogramas, diagrama de atividades,...
Modelos, padres de Melhoria: ISO, SW-CMM, CMMI, MPS-BR, ...

Modelos de Processo

Exemplo

Modelagem de Processos de Software

Modelos de Ciclo de Vida

Modelos de Processo

Agenda
Introduo
Modelo Cascata
Desenvolvimento Incremental
Desenvolvimento Evolucionrio
Modelo Espiral

Modelos de Processo

Introduo
O que ciclo de vida?
Conjuntos de fases que devem ser executadas para o desenvolvimento de um produto
de software. O ciclo de vida determina a ordem e interao entre as fases e atividades.

Modelos de ciclo de vida


so representaes abstratas de processos
descrevem processos a partir de uma perspectiva especfica
podem ser vistos como frameworks de processos
devem ser aplicados e personalizados segundo necessidades especficas

Alguns exemplos
Cascata
Evolucionrio
Espiral

Modelos de Processo

Modelo Cascata

Modelos de Processo

Modelo Cascata
Fases
Definio e anlise de requisitos
Projeto do sistema e do software
Implementao e testes de unidade
Integrao e testes do sistema
Operao e manuteno

Desvantagens
Dificuldade de acomodar as mudanas aps o processo ter sido iniciado
Particionamento inflexvel do projeto em fases distintas
Dificuldade de responder a requisitos do usurio que mudam
Portanto, esse modelo mais apropriado quando os requisitos so bem
compreendidos

Modelos de Processo

Desenvolvimento Incremental
Tambm chamado desenvolvimento iterativo.
Ao invs de entregar o sistema como uma nica entrega, particiona-se o
desenvolvimento e a entrega em incrementos, com cada incremento contendo
parte da funcionalidade requerida
Os requisitos do usurio so priorizados e os requisitos de prioridade mais alta
so includos nos incrementos iniciais
Uma vez que o desenvolvimento de um incremento iniciado, os requisitos so
congelados, ainda que os requisitos para incrementos posteriores continuem a
evoluir

Modelos de Processo

Desenvolvimento Incremental

Modelos de Processo

Desenvolvimento Incremental
Vantagens
Cada incremento pode agregar valor para o cliente, portanto a funcionalidade do
sistema est disponvel mais cedo
Incrementos iniciais atuam como um prottipo para ajudar a descobrir requisitos para
os incrementos posteriores
Menor risco de falha do projeto como um todo
Os servios de mais alta prioridade do sistema tendem a receber a maior parte dos
testes

Modelos de Processo

Desenvolvimento Evolucionrio
Base:
Desenvolver uma implementao inicial
Expor resultado ao comentrio do usurio
Aprimoramento por meio de muitas verses

Existem 2 tipos de desenvolvimento evolucionrio:


Desenvolvimento exploratrio
O objetivo trabalhar com os clientes e evoluir um sistema final a partir de uma
especificao genrica inicial. O desenvolvimento se inicia com as partes do
sistema que esto compreendidas.
Fazer prottipos descartveis
O objetivo compreender os requisitos do sistema. O prottipo se concentra em
fazer experimentos com partes dos requisitos que estejam mal compreendidas.

Modelos de Processo

Desenvolvimento Evolucionrio

Modelos de Processo

Desenvolvimento Evolucionrio
Desvantagens
Falta de visibilidade do processo
Os sistemas frequentemente possuem pouca estrutura
Podem ser exigidas habilidades especiais (por exemplo, em linguagens para
desenvolvimento rpido)

Aplicabilidade
Para sistemas interativos pequenos ou de mdio porte
Para partes de sistemas grandes (por exemplo, a interface com o usurio)
Para sistemas de vida curta

Modelos de Processo

Modelo Espiral
O processo representado como uma espiral, em vez de uma seqncia de
atividades com caminhos de retorno
Cada volta na espiral representa uma fase no processo
No h fases fixas, tais como especificao ou projeto
As voltas na espiral so escolhidas dependendo do que for exigido

Vantagens
os riscos so explicitamente avaliados e resolvidos durante todo o processo
mantm o enfoque sistemtico do ciclo clssico

Desvantagem
requer boa capacidade para Anlise de Riscos

Modelos de Processo

Modelo Espiral

Modelos de Processo

Modelo Espiral 1 Quadrante


Um ciclo se inicia com a tarefa
Determinao de objetivos,
alternativas e restries
Objetivos principais
comprometimento dos envolvidos
estabelecimento de uma estratgia
para alcanar os objetivos da fase
que se inicia

Comunicao com o cliente

Modelos de Processo

Modelo Espiral 2 Quadrante


Na segunda tarefa, Avaliao de
alternativas, identificao e soluo
de riscos, executa-se uma anlise
de risco.
Prottipos so uma forma de avaliar
riscos.

Anlise de riscos

Objetivos principais
detectar riscos
avaliar solues que ofeream menor
risco de implementao
adotar atividades para reduzir os
ricos principais

Se o risco for considerado


inaceitvel, o projeto pode ser
encerrado.

Engenharia

Modelos de Processo

Modelo Espiral 3 Quadrante


Na terceira tarefa ocorre o
desenvolvimento do produto.
Deve ser escolhido um modelo de
desenvolvimento de software
especfico
Objetivos principais
definir e validar os requisitos
projetar o software
projetar a validao e verificao
codificar
realizar testes
integrao
unidade
aceitao

Construo
e
adaptao

Avaliao do cliente

Modelos de Processo

Modelo Espiral 4 Quadrante


Na quarta tarefa o produto avaliado
e se prepara para iniciar um novo
ciclo
O projeto revisado e a prxima
fase da espiral planejada
Objetivos principais
planejar requisitos
planejar ciclo de vida
planejar desenvolvimento
planejar integrao e testes

Planejamento

Modelos de Processo

Modelo Espiral
Resumindo...
Definio do objetivo
Identificam-se os objetivos especficos da fase

Avaliao e reduo de risco


Os riscos so avaliados e so adotadas as atividades para reduzir os ricos principais

Desenvolvimento e avaliao
escolhido um modelo de desenvolvimento para o sistema, que pode ser qualquer um
dos modelos genricos

Planejamento
O projeto revisado e a prxima fase da espiral planejada

Modelos de Processo

Consideraes Finais
Definir o ciclo de vida adequado s caractersticas do projeto essencial para o
seu sucesso
Deve-se analisar os pontos fortes e fracos de cada modelo de ciclo de vida e
escolher o que oferea melhores condies para o desenvolvimento do software
Pontos importantes
variao da especificao dos requisitos ao longo do projeto
complexidade do sistema a ser desenvolvido
caractersticas especficas do projeto

Modelos de Ciclo de Vida

Modelos de Processo

Modelos de Processo

Agenda
Introduo
XP
SCRUM
Comparativo entre XP e SCRUM
Rational Unified Process (RUP)
Comparativo entre RUP e geis

Modelos de Processo

Introduo
Modelos de processo so utilizados para auxiliar na definio da sequncia de
atividades a serem realizadas durante o desenvolvimento de software
Constituem formas especficas de organizar o processo de software para obter
vantagens de qualidade e produtividade

Modelos de processo podem ser


classificados
de acordo com o grau de cerimnia
peso do mtodo em termos de
documentao, etapas formais,
reviso, etc
de acordo com o nmero de ciclos
nmero e tamanho das iteraes

Modelos de Processo

geis versus Rigorosos


Mtodos rigorosos requerem um alto grau de cerimnia
Mtodos geis requerem o grau de cerimnia estritamente necessrio para a
realizao da atividade
grau pode ser baixo ou alto

Mtodos geis tendem a ter iteraes menores do que mtodos rigorosos


Alguns exemplos
geis
XP
Scrum
Crystal
Rigorosos
RUP

Modelos de Processo

Manifesto gil

Indivduos
Indivduos ee interaes
interaes

sobre

Processos
Processos ee ferramentas
ferramentas

Software
Software funcionando
funcionando

sobre

Documentao
Documentao abrangente
abrangente

Colaborao
Colaborao com
com oo cliente
cliente

sobre

Negociao
Negociao de
de contrato
contrato

Responder
Responder aa mudanas
mudanas

sobre

Seguir
Seguir um
um plano
plano

Modelos de Processo

Mtodos geis
Quando usar?
construo de software complexo
desenvolvimento de novo produto com grandes ndices de mudanas
desenvolvimento imprevisvel
necessidade ou desejo de vantagens competitivas

Prticas comuns
desenvolvimento iterativo
orientado a riscos e a clientes
timeboxing
desenvolvimento evolucionrio e adaptativo
requisitos evolucionrios
planejamento evolucionrio e adaptativo

Modelos de Processo

Desenvolvimento Iterativo e Incremental


O feedback da iterao N leva a um
refinamento e adaptao dos
requisitos e do projeto da iterao N+1

Construo
para atender a
alguns requisitos

iterao de x semanas

feedback

Construo
para atender a
alguns requisitos

As iteraes
possuem tamanho
fixo - timeboxed

feedback

Construo
para atender a
alguns requisitos

O sistema cresce
incrementalmente

LIBERAO
PARA
CLIENTE

Modelos de Processo

Software

Requisitos

Software

Requisitos

Requisitos Evolucionrios

90%

90%

...

50%
30%

20%
2%

Iterao 1

3%

5%

Iterao 2

Iterao 3

10%

Iterao 4

20%

Iterao 5

Modelos de Processo

Extreme Programming
Foco
colaborao
criao de software rpida e antecipadamente
prticas de desenvolvimento voltadas para habilidades
buscar o mximo de valor a cada dia de trabalho da equipe para o cliente

Baseado em 5 valores
comunicao
cliente sempre disponvel
simplicidade
desenvolvedores devem implementar da forma mais simples possvel o que o
cliente deseja
feedback
do desenvolvedor: aponta riscos, estimativas e alternativas de design
do cliente: conduz o desenvolvimento do seu produto, estabelece prioridades e
informa aquilo que realmente importante

Modelos de Processo

Extreme Programming
Baseado em 5 valores (continuao)
coragem
para mudar de acordo com novas solicitaes
para enfrentar riscos associados a mudanas
respeito
valor fundamental para que os demais valores sejam atingidos
saber ouvir, saber compreender e respeitar o ponto de vista do outro essencial
para que um projeto de software seja bem sucedido

Modelos de Processo

Extreme Programming

Select user stories


for this release

Evaluate
system

Break down
stories to tasks

Release
Software

Plan release

Develop / integrate
/ Test software

Modelos de Processo

Extreme Programming
Prticas
Histrias
requisitos dos clientes so escritos em pequenos cartes
histrias servem como guias para a equipe
Ciclo Semanal
uma vez por semana os desenvolvedores se renem com o cliente
cliente solicita as funcionalidades desejadas atravs de estrias
Equipe Integral
equipe deve ser formada por desenvolvedores, cliente e por qualquer pessoa que
possa contribuir para o projeto
Programao em pares
todo e qualquer cdigo implementado no projeto deve ser efetuado em dupla
Integrao contnua
se possvel deve ser efetuada diversas vezes ao dia
a equipe deve ter conhecimento do cdigo recm desenvolvido
Reunies em p (Stand-up meetings)

Modelos de Processo

Extreme Programming
Classificao
ciclos pequenos para projetos mdios, cerca de 1 a 3 semanas
pouco grau de cerimnia o menor possvel

Modelos de Processo

Extreme Programming
Papis
Analistas de Teste
Arquitetos
Designers de Interao
Executivos
Gerentes de Projeto
Gerentes de Produto
Programadores
Recursos Humanos
Redatores Tcnicos
Usurios

Modelos de Processo

Scrum
Valores
compromisso
foco
abertura
respeito
coragem

Pontos chave
equipes que se auto organizam e gerenciam
iteraes de cerca de 30 dias chamadas sprints
reunies dirias com a equipe (stand-up meetings ou Scrum meetings) abordando
questes especiais
entregas para o cliente ao final de cada iterao
para cada iterao, planejamento adaptativo orientado ao cliente

Modelos de Processo

Scrum
Classificao
rgido em termos de tamanho das iteraes sempre iteraes curtas
flexvel em termos de grau de cerimnia depende da complexidade do projeto

Modelos de Processo

Scrum
Enfatiza um conjunto de valores e prticas de gerenciamento de projeto, ao invs
de requisitos, implementao, etc
nfase em processos empricos ao invs de processos definidos
O produto evolui em uma srie de iteraes mensais (sprints)
O produto projetado, codificado e testado durante o sprint
Os requisitos so listados em um Product Backlog
a cada sprint a prioridade da fila de requisitos pode ser modificada pelo cliente, sem
custo adicional para o projeto
antes do incio de cada sprint feito um planejamento rpido das atividades
necessrias para atingir o objetivo do sprint
Sprint Backlog

Durante um sprint, alguns parmetros so mantidos fixos


esforo
prazo
objetivo do sprint

Modelos de Processo

Scrum

Modelos de Processo

Scrum
Papis
Scrum Master
gerencia e codifica
conhece e refora a viso e os objetivos do projeto e da iterao
assegura o seguimento das prticas e valores do Scrum
mediador entre a gerncia e a equipe
remove impedimentos ao progresso do projeto
conduz as reunies dirias
conduz as revises ao final de cada sprint
Dono do Produto
1 pessoa responsvel pela criao e priorizao do Product Backlog
escolhe os objetivos para o prximo sprint
junto com outros stakeholders, revisa o sistema no final de cada sprint
Equipe
trabalha no Sprint Backlog
no h hierarquia

Modelos de Processo

Scrum
Vantagens
prticas simples e produtos de trabalho gerenciveis
resoluo de problemas e auto-gerncia realizadas pela equipe e individualmente
requisitos e desenvolvimento evolucionrios e incrementais, com comportamento
adaptativo
participao do cliente, que tambm guia a execuo das atividades
foco
abertura e visibilidade
facilmente combinado com outros mtodos
comunicao, aprendizagem e agregao de valor em equipe
construo da equipe atravs das reunies dirias

Desvantagens
oferece apoio mnimo sobre as demais disciplinas, com exceo de gerenciamento de
projetos (ex. requisitos, programao, tcnicas de engenharia de software, etc)
no define padres para documentao do projeto

Modelos de Processo

Rational Unified Process


Conforme [Kroll e Kruchten 2003], podemos definir o RUP como uma maneira de
desenvolvimento de software que iterativa, centrada arquitetura e guiada por
casos de uso.
classificado como um processo de Engenharia de Software organizado em
disciplinas e fases.
O RUP foi criado baseando-se nas melhores prticas de engenharia de software.
Contm todos os elementos bsicos de um processo de desenvolvimento
(papis, tarefas, atividades, artefatos, fluxo de trabalho).
Possui uma vasta biblioteca conceitual sobre elementos relacionados
engenharia de software.
Atualmente na verso 7.0
Para conhecer com mais detalhes o RUP , acesse:
http://www.ibm.com/developerworks/rational/library/content/03July/
1000/1251/1251_bestpractices_TP026B.pdf

Modelos de Processo

Rational Unified Process


Fases

Modelos de Processo

Rational Unified Process


Princpios
Adaptar o Processo para diferentes necessidades
Alinhar prioridades dos Stakeholders com objetivos de negcio
Otimizar a comunicao entre as equipes
Trabalhar em conjunto com equipes
Demonstrar o Valor Iterativamente
Elevar o Nvel de Abstrao
Focar Continuamente na Qualidade

Modelos de Processo

Comparao
Pontos fortes Abordagem Rigorosa
Considera caractersticas mais abrangentes da gerncia
Riscos
Gerenciamento de Contratos com Fornecedores
Planejamento de recursos necessrios ao projeto
Infraestrutura
Recursos Humanos
Gerencia os compromissos com elementos externos ao projeto que no so clientes,
mas que afetam o seu resultado
Prov uma viso abrangente do planejamento do projeto

Modelos de Processo

Comparao
Pontos fortes Abordagem gil
Permite balancear a flexibilidade e a estabilidade
A priorizao e o planejamento so focados na satisfao do cliente
Facilidade de tratar as mudanas no escopo e nas prioridades do projeto
Respostas mais imediatas aos desvios devido micro-gerencia
Valoriza a colaborao, motivao e compartilhamento do conhecimento.

Modelos de Processo

Rigorosos X geis
Fatores que afetam a Gerncia de Projetos - Comparao
Processos Rigorosos

Mtodos geis

Previsibilidade

Adaptabilidade

Conhecimento Explcito (documentao)

Conhecimento Tcito (comunicao)

Profissionais Especialistas

Profissionais Generalistas

Cliente externo ao projeto

Cliente na equipe

Prioridade execuo - fatores tcnicos (WBS,


estimativas, riscos)

Prioridade execuo maior valor ao Cliente /


Negcio

Entregas dependentes do plano

Entregas frequentes e peridicas

Escopo Definido e Fixo

Escopo Indefinido e Varivel

Gerncia de Mudanas

Mudanas incorporadas naturalmente

Foco no planejamento global

Foco no micro planejamento

Contratos Formais

Contratos Colaborativos

Progresso Artefato entregue

Progresso - Software funcionando

Modelos de Processo

Bibliografia
Livros:

Beck, K.; Extreme Programming Explained; Second Edition; Addison Wesley;


2005
Schwaber, K.; Agile Project Management with SCRUM; Microsoft Press; 2004
Chrissis, M.B.; Konrad, M; Shrum, S; CMMI Guidelines for Process Integration and
Product Improvement; Addison Wesley; 2007
Boehm, B.;Turner, R.; Balancing Agility and Discipline; Addison Wesley; 2004
Larman, C.; Agile & Iterative Development; Addison Wesley; 2004
Fiorini, S.; Staa, A.v.; Baptista, R.M.; Engenharia de Software com CMM;
Brasport; 1998
Jacobson, I.; Booch, G.; Rumbaugh, J.; The Unified Software Development
Process; Addison Wesley; 1999
Sommerville, Ian; Software Engineering 2004

Modelos de Processo

Você também pode gostar