Você está na página 1de 56

Modelo de Processo de Software

MODELOS DE PROCESSO DE
SOFTWARE

Monica de Souza Massa

maro / 2009

slide 1

Modelo de Processo de Software

PROCESSO
Definio

Uma sequencia de etapas que envolvem atividades,

restries e recursos para alcanar o objetivo desejado.

Esta sequencia , geralmente, realizada sempre na


mesma ordem todas as vezes.

Um processo mais do que um procedimento:


Procedimento = receita. Combinao de ferramentas e tcnicas
para produzir algo.

Processo = conjunto de procedimentos organizados de modo a

permitir a construo de produtos que satisfaam uma srie de


objetivos e padres.
Monica de Souza Massa
maro / 2009 slide 2

Modelo de Processo de Software

PROCESSO
O QUE ?

Exemplo:
Processo: fazer um bolo de chocolate
- procedimento: receita
- atividade: bater a massa
- restries: temperatura do forno
- recursos: aucar
- ferramentas: batedeira

Monica de Souza Massa

maro / 2009

slide 3

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Definio

conjunto estruturado de atividades necessrias para


o desenvolvimento ou a evoluo do software.

conjunto coerente de atividades para especificar,

projetar, implementar e testar um sistema de software.


Um processo define quem faz o qu, quando e
como o objetivo ser atingido
Jacobson, Booch e Rumbaugh

Monica de Souza Massa

maro / 2009

slide 4

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Um processo de software inclui
Todas as principais atividades
Recursos
Produtos intermedirios e finais
Subprocessos, com hierarquia ou organizados de algum
modo
Critrios de entrada e sada para cada atividade
Seqncia de atividades, de modo que a ordem de
execuo de uma para outra seja clara
Conjunto de diretrizes que explicam os objetivos de
cada atividade
Monica de Souza Massa

maro / 2009

slide 5

Modelo de Processo de Software

PROCESSO DE SOFTWARE

Diferentes processos de SW organizam as atividades de


maneiras diversas.

Diferentes organizaes podem utilizar processos


diferentes para produzir o mesmo tipo de produto.

Alguns processos so mais adequados do que outros


=> depende do tipo de aplicao.

Monica de Souza Massa

maro / 2009

slide 6

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Framework genrico para um processo de SW

especificao +
desenvolvimento +
validao +
evoluo
Monica de Souza Massa

Utilizado como base para os


modelos de processo de SW
e ap[licado na grande
maioria dos projetos de SW
maro / 2009

slide 7

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Especificao

Estabelece quais as funes que so requeridas pelo


sistema e as restries sobre sua operao e
desenvolvimento.

Engenharia de requisitos
Composto de quatro estgios principais:
Estudo de viabilidade
Levantamento e anlise de requisitos
Especificao dos requisitos
Validao dos requisitos

Monica de Souza Massa

maro / 2009

slide 8

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Desenvolvimento (projeto e implementao do SW)

o processo de converso de uma especificao de


sistema em um sistema executvel.

Projeto de SW = descrio da estrutura do SW a ser


implementado, dos dados, das interfaces e dos
algoritmos.

Atividades principais:
Projeto de arquitetura
Especificao das funes do SW
Projeto de Interface
Monica de Souza Massa

Projeto de Componentes
Projeto das Estruturas de Dad
Projetos de Algoritmos
maro / 2009

slide 9

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Desenvolvimento (projeto e implementao do SW)

Mtodos de projeto so notaes padronizadas e


incorporaes das boas prticas.
Melhor mtodo ???? adequao ao domnio da
aplicao
Aumento da probabilidade de resultar em um bom
projeto
Criatividade ainda requerida pelo projetista
Monica de Souza Massa

maro / 2009

slide 10

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Desenvolvimento (projeto e implementao do SW)
Em muitos projetos de desenvolvimento, o projeto de SW ainda um processo
utilizado medida que for necessrio. Partindo de um conjunto de requisitos,
geralmente em linguagem natural, preparado um projeto informal. A codificao se
inicia, e o projeto modificado medida que o sistema implementado. Existe pouco
ou nenhum controle dessas modificaes ou do gerenciamento do projeto. Quando o
estgio de implementao se completa, o projeto normalmente foi to modificado ,
depois da sua especificao inicial, que o documento original de projeto uma
descrio incoerente e incompleta do sistema.
Sommerville (2007)

Monica de Souza Massa

maro / 2009

slide 11

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Validao de SW

Tem por objetivo mostrar que um sistema est de


acordo com suas especificaes e que ele atende
expectativa do cliente.

Validao

processual desde requisitos at SW

pronto

ps implementao
iterativo

Integrao planos de teste teste beta


Monica de Souza Massa

maro / 2009

slide 12

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Validao de SW
UNIDADE
MDULO
SUBSISTEMA

Teste de
componentes
Programadores

Monica de Souza Massa

SISTEMA

Teste de
integrao
Equipe de teste

ACEITAO

Teste de usurio
Equipe de teste
maro / 2009

slide 13

Modelo de Processo de Software

PROCESSO DE SOFTWARE
Evoluo do SW

Evoluo ou manuteno (distino entre os termos).


medida que os requisitos mudam (em funo das mudanas de
negcio no domnio da aplicao), o SW que suporta esse negcio
precisar ser modificado.

Embora exista uma marcao formal entre desenvolvimento e


manuteno, o SW j evolui (sofre mudana) antes mesmo de
concluir o seu desenvolvimento formal.

Desenvolvimento = melhor parte ????


Onde termina Desenvolvimento e comea Manuteno?
Monica de Souza Massa

maro / 2009

slide 14

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Contextualizando

Um processo de desenvolvimento de software ,


portanto, uma abordagem que descreve um
conjunto de aes cuja meta o desenvolvimento
ou evoluo de um sistema.

composto de fases e atividades que descrevem


a receita do bolo- o passo a passo do processo de
desenvolvimento.

De forma a organizar o desenvolvimento de


sistemas de software foram criadas ao longo do
vrios critrios de diviso do processo
em slide 15
Monicatempo
de Souza Massa
maro / 2009

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Contextualizando

Todos os modelos de processo podem ser


percebidos dentro da estrutura genrica
(framework) descrita anteriormente, com algumas
adaptaes a depender da natureza do projeto de
SW.

As diferenas entre os modelos de processo de SW


residem:

Na organziao do fluxo de atividades e tarefas dentro de


cada fase;

Na interdependncia entre tarefas;


No nvel de detalhamento de cada tarefa;
Monica
de Souza Massa

maro / 2009

slide 16

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Alguns modelos de processo de SW:

Code-and-Fix

Modelo em cascata
Prototipao
Modelos iterativos (incremental e espiral)
Desenvolvimento orientado a reuso
Processo Unificado
Monica de Souza Massa

maro / 2009

slide 17

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Code-and-fix.

Esse modelo comea com uma idia geral


informal do produto.

O SW desenvolvido CODIFICADO at que


o produto esteja pronto.

No existe planejamento e a ordem de


execuo das atividades randmica.

Monica de Souza Massa

maro / 2009

slide 18

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Code-and-fix.
Vantagens:

No existe um overhead administrativo (no se


perde tempo planejando).

Os resultados cdigo so rapidamente


verificveis.

No precisa de conhecer tcnicas de


desenvolvimento de SW.

til para pequenos projetos de prova de

conceito (modelo prtico que possa provar um

Monica de Souza Massa

maro / 2009

slide 19

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Code-and-fix.
Desvantagens:

Perigoso!
No existe controle.
No existe planejamento de recursos.
No existe estimativas de prazo ou custo.
Erros so difceis apra descobrir e corrigir.

Modelo impossvel de adequao a projetos de


grande porte e alta complexidade.
Monica de Souza Massa

maro / 2009

slide 20

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Clssico - Cascata.

Surgiu na dcada de 50 e se popularizou em


70.

Cascata de etapas.
Ciclo de vida mais antigo e mais utilizado.
Resultado de uma etapa usado na etapa
seguinte.

Baseado no modelo clssico da engenharia.


Monica de Souza Massa

maro / 2009

slide 21

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Clssico - Cascata.
Requirements
definition
Systemand
softwaredesign
Implementation
andunittesting
Integr ationand
systemtesting
Operationand
maintenance
Ian Sommerville
Monica de Souza Massa

maro / 2009

slide 22

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Clssico - Cascata.
Vantagens:

Fcil de entender e implementar.


Amplamente utilizado. (50s)
Acompanha o modelo proposto pela Engenharia.
Refora bons hbitos.
Orientado a documentos (mais um bom hbito!)
Monica de Souza Massa

maro / 2009

slide 23

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Clssico - Cascata.
O grande obstculo deste modelo a dificuldade
em acomodar mudanas ao longo do processo de
desenvolvimento.
Desvantagens:

Projetos reais raramente seguem o fluxo sequencial


que o modelo prope

Difcil para o cliente estabelecer todos os requisitos


inicialmente.
Monica de Souza Massa

maro / 2009

slide 24

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Clssico - Cascata.
Mais desvantagens:

Dificuldade na adaptao incerteza natural que


existe no incio dos projetos.

O cliente precisa ter pacincia!

Tempo necessrio

para disponibilizar o software.

Dificuldade em rasterar os requisitos do modelo para


o cdigo.

Particionamento inflexvel do projeto em estgios, o


que torna complicado atender s mudanas de

Monica de Souza Massa

maro / 2009

slide 25

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Prototipao.

Processo onde o desenvolvedor cria um modelo do


software que ser implementado.

O prottipo serve como um mecanismo para a


identificao dos requisitos do software.

Tipos de Prototipao:
EVOLUTIVA o objetivo trabalhar com o cliente e evoluir
uma especificao inicial para o SW pronto.
DESCARTVEL objeticvo entender os requisitos do SW.

Monica de Souza Massa

maro / 2009

slide 26

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Prototipao.

Monica de Souza Massa

maro / 2009

slide 27

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Prototipao.
Concurrent
activities

Specifi ca
tion

Outline
description

Development

Validation

Monica de Souza Massa

Initial
version

Intermediate
versions

Final
version

maro / 2009

slide 28

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Prototipao.
Fluxo de Trabalho

Reunio dos requisitos


Definio dos objetivos em conjunto (cliente e
desenvolvedor) identificando reas de risco.

Projeto rpido focando o que visvel ao usurio


(entradas e sadas).

Refinamento dos requisitos e avaliao do prottipo.


Processo iterativo at cliente e desenvolvedor
estarem satisfeitos.

Monica de Souza Massa

maro / 2009

slide 29

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Prototipao.
Vantagens:

Reduo de risco em funo de requiistos de usurio


incorretos.

Alternativa quando existe grande frequencia de

mudana nos requisitos sem um comprometimento do


cliente.

Progresso facilmente visto auxilia o gerenciamento.


Viabiliza o marketing antecipado do produto.
Monica de Souza Massa

maro / 2009

slide 30

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Prototipao.
Desvantagens:

Falta de visibilidade do processo.


Idealizao do prottipo como resolvedor dos
problemas.

Conscientizao do cliente, que ignora a funo do


prottipo.

SWs so frequentemente estruturados probremente

(Concesses na escolha da arquitetura e infra-estrutura


do SW para ateder s expectativas do cliente).
Monica de Souza Massa

maro / 2009

slide 31

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Prototipao.
Aplicao:

SWs de pequeno porte e alto grau de interao.


Parte de SWs de grande porte (p. ex. Interfaces
grficas)

SWs de curta durao.

Monica de Souza Massa

maro / 2009

slide 32

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Processos Iterativos
Requisitos de sistema sempre evoluem durante o
desenvolvimento de um projeto de SW.
Desta forma, o retorno a estgios anteriores para alterao do
projeto sempre parte do processo de desenvolvimento,
principalmente em SW de grande porte ou grande complexidade.
A incluso da iterao como parte do processo de
desenvolvimento de SW pode ser aplicada em qualquer modelo
de processo..
Modelos iterativos:
Modelo Incremental
Modelo Espiral

Monica de Souza Massa

maro / 2009

slide 33

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Incremental

O desenvolvimento e entrega do SW dividido em


incrementos.

Cada incremento uma parte das funcionalidades


requeridas eplo cliente.

Os requisitos do usurio so priorizados e aqueles com


prioridade mais alta so includos nos primeiros
incrementos.

Aplica sequencias lineares de forma racional medida


que o tempo passa.
Monica de Souza Massa

maro / 2009

slide 34

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Incremental
Em um processo de desenvolvimento incremental, os
clientes identificam, em um esboo, as funes a
serem fornecidas pelo sistema, Eles identificam quais
as funes so mais importantes e quais as menos
importantes para eles. Em seguida definida uma
srie de estgios de entrega, com cada estgio
fornecendo um subconjunto das funcionalidades do
sistema. A alocao de funes aos estgios depende
da prioridade da funo. As funes prioritrias so
entregues primeiro ao cliente.
Monica de Souza Massa

maro / 2009

slide 35

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Incremental
Definir esboo dos
requisitos

Desenvolver
incremento do
sistema

Monica de Souza Massa

Atribuir requisitos
aos incrementos

Projetar arquitetura
do sistema

Validar incremento
Integrar
incremento

Validar sistema

maro / 2009

slide 36

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Incremental
Vantagens:

Os clientes no precisam esperar at o todo o sistema


seja entregue.

Os clientes podem utilizar os primeiros incrementos


como um prottipo para obter experincia sobre o
sistema.

Existe um risco menor de fracasso completo do


sistema.

Os servios mais prioritrios do SW tendem a receber


a maior carga de teste..

Monica de Souza Massa

maro / 2009

slide 37

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Incremental
Desvantagens:

Os incrementos devem ser relativamente pequenos.


Pode ser difcil mapear os requisistos dos clientes
dentro de incrementos de tamanho correto.

A amioria dos sistemas exige um conjunto de

funcionalidades bsicas que so usadas por diferentes


partes do sistema.

Monica de Souza Massa

maro / 2009

slide 38

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Espiral
O processo de desenvolvimento do SW representado com uma
Espiral.

Considera o fato REAL de que a maioria dos SWs evoluem antes da


entrega do produto.

Cada volta na Espiral representa uma nova fase no processo.


Em cada iterao, planos, custos, riscos e cronogramas sao
atualizados e o gerente de projeto obtm maioroes informaes sobre
o SW e sobre a necessidade de mais iteraes.

Meta modelo - qualquer ciclo pode ser usado na fase de


desenvolvimento.
Monica de Souza Massa

maro / 2009

slide 39

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Espiral

Monica de Souza Massa

maro / 2009

slide 40

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Espiral - fases
Comunicao com o cliente tarefas especficas para estabelecer a
comunicao efetiva entre desenvovledor e cliente
Planejamento definio de recursos, prazos e outras informaes para o
gerenciamento do projeto.
Anlise de risco considerao dos riscos gerenciais e tcnicos.
Engenharia construo dos modelos da aplicao (um ou mais modelos).
Construo e entrega - implementao, teste, instalao e suporte ao
usurio (documentao e treinamento).
Avaliao obteno de feedback do cliente sobre o SW.

Monica de Souza Massa

maro / 2009

slide 41

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Espiral
Vantagens:
Realismo o modelo reflete a natureza iterativa do
desenvolvimento do SW.
Flexibilidade combina vantagens do modleo
cascata com o modelo evolutivo.
Anlise efetiva dos riscos.

Monica de Souza Massa

maro / 2009

slide 42

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Modelo Espiral
Desvantagens:
Necessita de pessoas experientes em anlise e
gerenciamento de risco para que o modelo funcione bem.
O modelo no facilemtne entendido pelos gerentes da
rea usuria.
O modelo complexo e necessita de gerenciamento
especializado, o que causa um overhead administrativo.

Monica de Souza Massa

maro / 2009

slide 43

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Desenvolvimento orientado ao reuso
Baseado na reutilizao sistemtica de componeentes de
SW.

Conta com um abase de componenetes de SW reutilizveis ,


que podem ser acessados, e com uma infra-estrutura de
integrao para esses componentes.

Composto dos seguintes estgios:


Especificao de requisitos
Anlise de Componentes
Modificao de requisitos
Projeto de sistema com reuso
Desenvolvimento e integrao
Monica de Souza Massa

maro / 2009

slide 44

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Desenvolvimento orientado ao reuso
Especificao de
requisitos

Projeto de sistema
com reuso

Monica de Souza Massa

Anlise de
Componentes

Desenvolvimento
e integrao

Modificao de
requisitos

Validao do
sistema

maro / 2009

slide 45

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Desenvolvimento orientado ao reuso

Vantagens:
Reduo da quantidade de software produzida
Reduo de custos e riscos
Entrega mais rpida do software

Desvantagens:
Necessria adequaes nos requisitos
No atendimento s reais necessidades dos usurios
Alguma perda de controle sobre o sistema (componentes
reutilizveis fora do alcance).
Monica de Souza Massa

maro / 2009

slide 46

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
UP unified process

Um dos modelos de processo de desenvolvimento


mais utilizado atualmente o Processo Unificado (UP
unified process).

O UP foi construdo pelos mesmos criadores da UML


e, desta forma, fortemente baseado na modelagem
visual e utiliza largamente os artefatos produzidos
por esta liguagem como documentos resultantes das
etapas (fases) do processo de desenvolvimento.
Monica de Souza Massa

maro / 2009

slide 47

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
UP unified process

Caractersticas: Processo iterativo e incremental

Monica de Souza Massa

maro / 2009

slide 48

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
UP unified process - DIMENSES

O agrupamento de atividades em fases no Processo


Unificado (UP) acontece sob duas dimenses:
A dimenso horizontal representa o tempo e mostra
aspectos do ciclo de vida do processo. So os aspectos
dinmicos do processo expresso em termos de ciclos,
fases, iteraes e marcos.
A dimenso vertical representa a organizao do
processo em termos de atividades e fluxo de trabalho.
Representa os aspectos estticos do processo. maro / 2009
Monica de Souza Massa

slide 49

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
UP unified process - DIMENSES

Monica de Souza Massa

maro / 2009

slide 50

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
UP unified process FASES: dimenso tempo
(horizontal)

Monica de Souza Massa

maro / 2009

slide 51

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
UP unified process DISCIPLINAS: dimenso
fluxo de trabalho (vertical)
Modelagem de negcio
Requisitos
Anlise e Projeto
Implementao

workflow

Testes
Implantao
Gerenciamento de
mudanas
Gerenciamento de
projetos
Ambiente
Monica de Souza Massa

maro / 2009

slide 52

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
UP unified process DISCIPLINAS: dimenso
fluxo de trabalho (vertical)

Monica de Souza Massa

maro / 2009

slide 53

Modelo de Processo de Software

Iterao e disciplinas do processo unificado


P h ases
C ore Work flow s

Incep tion

E la boratio n

C onstruction

Transitio n

Requirements
A n ite ra tio n in the
elabo ra tio n p h ase
Analysis

Design

Implementation

Test
P r e lim in a r y
I te r a t io n ( s )

Monica de Souza Massa

it e r.
#1

it e r.
#2

it e r.
#n

it e r.
#n+1

ite r.
#n+2

it e r.
#m

it e r.
#m +1

maro / 2009

slide 54

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Combinao de Paradigmas.

Extrair peculiaridades de cada paradigma em um


nico projeto.

A natureza da aplicao e o ambiente


organziacional so os fatores que devem indicar o
modelo (ou modelos) de processo a ser aplicado no
desenvolvimento do SW.

O todo maior do que a soma das partes


Monica de Souza Massa

maro / 2009

slide 55

Modelo de Processo de Software

MODELO DE PROCESSO DE
SOFTWARE
Exemplos:

Combinao de paradigmas:
evolutivo com cascata prototipao de
interfaces.

Exemplos de anlise de ambiente:


ambiente estvel e software cientfico modelo
cascata

ambiente turbulento e software comercial


modelo evolutivo (prototipao).
Monica de Souza Massa

maro / 2009

slide 56

Você também pode gostar