Você está na página 1de 5

DCC / ICEx / UFMG

O que um processo de software?

Processos de Software

Conjunto de atividades que leva ao


desenvolvimento do produto software
Um processo define
Quem faz, o que faz e quando fazer
Nem sempre diz como fazer

Eduardo Figueiredo
http://www.dcc.ufmg.br/~figueiredo

O que modelo de processo?


Descrio simplificada do processo
Definem
As atividades para o desenvolvimento
do software
Especificam os produtos de cada
atividade
Indicam os papis das pessoas
envolvidas

No existe um processo ideal


Organizaes desenvolvem seus
prprios processos

Vantagens
Oferecem um roteiro til para o
trabalho de engenharia de software
Mas, nenhum modelo de processo
perfeito

Outras vantagens
Padronizao dos artefatos
Melhor comunicao da equipe
Menos treinamento de pessoal

Exemplos de Modelos de Processo


Modelos mais gerais
Modelo Cascata
Desenvolvimento Incremental
Eng. de Software orientada a Reuso

Os modelos mais gerais no so


mutuamente exclusivos
Organizaes tendem a combinar
partes de diferentes modelos

Modelos de Processo Gerais

Modelo Cascata
Desenvolvimento Incremental
Baseado em Reuso

Modelos de Processo Gerais


Modelo Cascata

Modelo Cascata
Atividades sequenciais
Uma fase deve ser terminada para a
outra comear

Desenvolvimento Incremental
Baseado em Reuso

Raramente ocorre na prtica


Definio de
Requisitos

Projeto
Implementao
Testes
Manuteno

Vantagens do Modelo Cascata


Documentao rgida (idealmente
completa) em cada atividade
Reflete abordagens adotadas em
outras engenharias
Aderncia a outros modelos de
processo
Pode ser combinado a outros modelos

Quando Aplicar o Modelo Cascata?

Desvantagens do Modelo Cascata


Projetos reais raramente seguem um
fluxo sequencial
Em geral, difcil para o cliente
estabelecer todos os requisitos priori
Difcil se adequar a mudanas
inevitveis de requisitos
Uma verso executvel somente ficar
pronta na fase final do projeto

Modelos de Processo Gerais

Sistemas crticos
Modelo Cascata
Quando os requisitos so bem
compreendidos
Quando h pouca probabilidade dos
requisitos mudarem

Desenvolvimento Incremental
Baseado em Reuso

Desenvolvimento Incremental
Atividades so intercaladas
Objetivo: dar feedback rpido ao cliente
Descrio do
Escopo

Especificao

Desenvolvimento

Validao

Verso Inicial
Verses
Intermedirias

Permite trabalhar com o cliente o


entendimento dos requisitos
Pode-se comear o sistema pelas
partes melhor entendidas
Feedback rpido ao cliente

Verso Final

Desvantagens
O processo pode no ser muito claro
A gerncia do software complicada
O sistema no completamente
especificado priori

O produto final frequentemente mal


estruturado
A mudana contnua tende a corromper
a modularidade do sistema

Modelos de Processo Gerais


Modelo Cascata
Desenvolvimento Incremental
Baseado em Reuso

Vantagens

Desvantagens
O processo no muito claro
Os problemas
do
A gerncia
do software complicada

desenvolvimento
incremental
se tornam
Os sistemas so frequentemente mal
estruturados
mais graves em
A mudana contnua tende a corromper
sistemas crticos.
a modularidade
O sistema no completamente
especificado priori

Processo Orientado ao Reuso


Baseia-se na existncia de um nmero
significativo de componentes reusveis
O processo se concentra na integrao
dos componentes reusveis
Inspirado na analogia com
componentes de hardware
Exemplo: componentes eltricos /
eletrnicos

Representao

Alinhar componentes aos requisitos

Baseia-se na existncia de um nmero


significativo de componentes reusveis
O processo se concentra na integrao
dos componentes
Especificao
de Requisitos

Anlise de
Componentes

Desenvolvimento e
Integrao

Alterao nos
Requisitos

Projeto do Sistema
com Reuso

Validao do
Sistema

Anlise de Componentes
Dada uma especificao, encontrar componentes
que a atendam

Alterao nos Requisitos


Se possvel, os requisitos so adaptados aos
componentes existentes
Especificao
de Requisitos

Anlise de
Componentes

Desenvolvimento e
Integrao

Alterao nos
Requisitos

Projeto do Sistema
com Reuso

Validao do
Sistema

Vantagens

Integrao dos Componentes


Projeto do Sistema com Reuso
Se necessrio, projeta-se novos componentes
reusveis

Reduz a quantidade de software a


ser desenvolvido

Desenvolvimento e Integrao

Espera-se reduzir os custos e os


riscos

Desenvolvimento de novos componentes


Integrao de todos os componentes
Especificao
de Requisitos

Anlise de
Componentes

Desenvolvimento e
Integrao

Alterao nos
Requisitos

Projeto do Sistema
com Reuso

Validao do
Sistema

Desvantagens
Pode-se desenvolver um produto que
no atenda aos requisitos do cliente
Pode ser mais difcil evoluir os
sistemas
Componentes de terceiros

A gerncia de verses dos


componentes pode ser complexa

Espera-se uma entrega do produto


mais rpida ao cliente

Qual modelo de processo usar?


Sistemas Crticos
Sugerido um modelo de processo mais
estruturado / rigoroso como o Modelo
Cascata

Sistemas de Negcios
(requisitos mudam com frequncia)
Sugerido um modelo de processo gil e
flexvel como o Desenvolvimento
Incremental ou o Baseado em Reuso

Bibliografia
Ian Sommerville. Engenharia de
Software, 9 Edio. Pearson
Education, 2011.
Seo 2.1 Modelos de Processo

Você também pode gostar