Você está na página 1de 42

Engenharia de Software

Fernanda Campos
DCC/UFJF

Aula 2

Processo de Software


O desenvolvimento de software compreende um


conjunto de etapas que envolve mtodos, ferramentas e
procedimentos, chamadas Modelo de Processo de
Software.
Estes modelos so escolhidos considerando:
 domnio da aplicao
 os mtodos e as ferramentas a serem usadas
 os controles e os artefatos que precisam ser entregues
 as caractersticas do grupo desenvolvedor
 o grau de conhecimento sobre o problema.

Processo de Software

Processo de Software


Definies (Sommerville)
Processo de Software
 Conjunto de atividades para especificao, projeto,
implementao e teste de sistemas de software

Modelo de Processo Software





Um modelo de processo software uma


representao abstrata de um processo.
Apresenta a descrio de um processo a partir
de uma perspectiva particular.

Modelo de Ciclo de Vida Clssico


s vezes chamado de modelo cascata ou
ainda de modelo linear seqencial o
paradigma desse ciclo de vida requer uma
abordagem sistemtica e seqencial ao
desenvolvimento.
 o paradigma mais antigo e o mais
usado.


Modelo de Ciclo de Vida Clssico

Modelo de Ciclo de Vida Clssico








Problemas
Os projetos reais raramente seguem o fluxo
seqencial que o modelo prope;
Muitas vezes difcil para o cliente declarar todas
as exigncias explicitamente;
Uma verso do programa no estar disponvel
at um ponto tardio do cronograma;
O cliente precisa ter pacincia.


Indicado somente
conhecidos.

se

os

requisitos

so

bem

Modelo de Prototipagem


Em situaes em que a incerteza est presente na definio


de requisitos, objetivos e procedimentos a prototipagem
pode representar uma abordagem interessante.
A prototipagem permite a criao de um modelo do
software que ser desenvolvido, em uma das seguintes
formas:
 Um prottipo que retrata a interao
homemmquina de forma que o usurio entenda esta
interao;
 Um
prottipo de trabalho que implemente um
subconjunto das funes do software;
 Um programa que executa parte ou toda a funo
desejada, mas que tem outras caractersticas que
sero melhoradas em um novo esforo de
desenvolvimento.

Modelo de Prototipao

Problemas
O cliente v o prottipo como uma verso de
trabalho do software e exige a sua adequao
para o produto, pensando no prazo e no
considerando as questes de qualidade e
manutenibilidade;
O desenvolvedor muitas vezes faz concesses de
implementao a fim de colocar um prottipo em
funcionamento.

Modelo Desenvolvimento Rpido da


Aplicao - RAD


um modelo de desenvolvimento de software incremental


que enfatiza um ciclo de desenvolvimento extremamente
curto.
uma adaptao do modelo seqencial linear, no qual o
desenvolvimento rpido se utiliza da construo baseada
em componentes.
Se os requisitos so bem compreendidos e o objetivo do
projeto restrito, o processo RAD permite a uma equipe de
desenvolvimento criar um sistema plenamente funcional,
dentro de perodos muito curtos (60 a 90 dias).
Muito aplicado a sistemas de informao.

Modelo Desenvolvimento Rpido


da Aplicao - RAD


Fases:


Modelagem do negcio: o fluxo de


informao entre as funes do negcio
modelada.
Modelagem de dados: o fluxo de informao
refinado num conjunto de objetos de dados
necessrios para dar suporte ao negcio. Os
atributos e e as relaes so definidas.
Modelagem do processo: descries do
processamento so criadas para adicionar,
modificar, descartar ou recuperar um objeto de
dados.

Modelo Desenvolvimento Rpido da


Aplicao - RAD


Fases


Gerao da aplicao: usa tcnicas de


quarta gerao, reuso e desenvolvimento de
componentes, e ferramentas automatizadas
para facilitar a construo.
Teste e entrega: reutiliza componentes o que
reduz o tempo de teste, porm os novos
componentes precisam ser testados e as
interfaces exercitadas.

Modelo Desenvolvimento Rpido da


Aplicao - RAD


Desvantagens





Para projetos grandes exige RH suficientes para criar um


nmero adequado de equipes RAD
Exige desenvolvedores e clientes compromissados.
Nem todos os tipos de aplicao so apropriadas.
Quando riscos tcnicos forem elevados o RAD no
adequado (novas tecnologias, interoperabilidade com
outros sistemas)

Modelos de Desenvolvimento
Evolucionrios






O software evolui durante um perodo de tempo


Requisitos do negcio e do produto mudam
frequentemente medida que o desenvolvimento
prossegue
Prazos reduzidos de mercado exigem verso
reduzida
Os modelos evolucionrios so interativos e
permitem o desenvolvimento de verses cada vez
mais completas do software.

Desenvolvimento Evolucionrio
Incremental


Modelo incremental





Combina elementos do modelo sequencial


linear (aplicado repetidamente) com a filosofia
interativa da prototipagem.
Cada sequncia linear produz um incremento
factvel do software,operacional.
particularmente til quando no h mo-deobra disponvel para uma implementao
completa, dentro do prazo estabelecido.

Desenvolvimento Evolucionrio
Incremental

Desenvolvimento Evolucionrio
Incremental

Desenvolvimento Evolucionrio
Incremental

Modelo Evolucionrio - Espiral




Foi desenvolvido para abranger as


melhores caractersticas tanto do ciclo
de vida clssico como de prototipao,
acrescentando ao mesmo tempo um
novo elemento a anlise de riscos.

Modelo Evolucionrio - Espiral




Atividades

Planejamento:
determinao
dos
objetivos,
alternativas e restries.
Anlise de riscos: anlise de alternativas e
identificao e resoluo dos riscos.
Engenharia: desenvolvimento do produto no nvel
seguinte.
Avaliao: feita pelo cliente: avaliao dos resultados
da engenharia.





Modelo Evolucionrio - Espiral

Modelo Evolucionrio - Espiral

Modelo Evolucionrio - Espiral

Modelo Evolucionrio - Espiral




Cada interao ao redor da espiral possibilita a


construo de verses progressivamente mais
complexas. Para tal outros modelos de ciclo de vida
podem ser usados para elucidar requisitos como o de
prototipagem.
O paradigma do modelo espiral , atualmente, a
abordagem mais realstica para o desenvolvimento de
software em grande escala. Ele usa uma abordagem
evolucionria, capacitando o desenvolvedor e o cliente a
entender e reagir aos riscos de cada etapa evolutiva.

Desenvolvimento Orientado a Reuso


Incorpora as caractersticas do modelo
espiral e compe aplicaes a partir de
componentes de software previamente
desenvolvidos ou desenvolvidos durante o
processo.
 Enfatiza a reutilizao, isto desenvolve
para e com reuso.


Você também pode gostar