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

No existe um processo ideal


Organizaes desenvolvem seus prprios processos

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

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

Modelos de Processo Gerais

Os modelos mais gerais no so mutuamente exclusivos


Organizaes tendem a combinar partes de diferentes modelos

Modelo Cascata Desenvolvimento Incremental Baseado em Reuso

Modelos de Processo Gerais


Modelo Cascata Desenvolvimento Incremental Baseado em Reuso

Modelo Cascata
Atividades sequenciais Uma fase deve ser terminada para a outra comear
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

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

Quando Aplicar o Modelo Cascata?


Sistemas crticos

Modelos de Processo Gerais


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 Verso Inicial Verses Intermedirias

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

Desenvolvimento

Validao

Verso Final

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

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

O produto final frequentemente mal estruturado


A mudana contnua tende a corromper a modularidade do sistema

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

Modelos de Processo Gerais


Modelo Cascata Desenvolvimento Incremental Baseado em Reuso

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
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 Alterao nos Requisitos Desenvolvimento e Integrao Projeto do Sistema com Reuso Validao do Sistema

Alinhar componentes aos requisitos


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 Alterao nos Requisitos Desenvolvimento e Integrao Projeto do Sistema com Reuso Validao do Sistema

Integrao dos Componentes


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

Vantagens
Reduz a quantidade de software a ser desenvolvido Espera-se reduzir os custos e os riscos
Validao do Sistema

Desenvolvimento e Integrao
Desenvolvimento de novos componentes Integrao de todos os componentes
Especificao de Requisitos Anlise de Componentes Alterao nos Requisitos Desenvolvimento e Integrao Projeto do Sistema com Reuso

Espera-se uma entrega do produto mais rpida ao cliente

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

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

A gerncia de verses dos componentes pode ser complexa

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

Você também pode gostar