Buscar

ProcessoSoftwareA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Processo de Software
Fundamentos de Engenharia de Software
Professor Alexandre Cidral, Dr
• Ao final desta unidade o estudante deverá 
ser capaz de 
• Conceituar processo de software
• Caracterizar as atividades fundamentais da 
engenharia de software
• Descrever os três modelos fundamentais de 
processo de software
• Caracterizar as formas de gerenciar a 
mudança de requisitos de software
Objetivos
• Processo de software
• Atividades fundamentais da engenharia 
de software
• Modelos de processo de software
• Gerenciamento de mudanças de 
requisitos de software
Agenda
• É um conjunto de atividades relacionadas 
que levam à produção de um produto de 
software
• Este uso cada vez mais intenso tem sido 
justificado pela busca da melhoria da 
qualidade, da produtividade, da 
competitividade e da lucratividade das 
empresas
Processo de Software
• Ao descrever um processo de software é 
comum caracterizar
• Etapas/fases
• Atividades/tarefas
• Produtos/entregas/artefatos
• Papéis
• Métodos, técnicas e ferramentas
• Pré-condições
• Pós-condições
Processo de Software
• As atividades fundamentais da engenharia 
de software são:
• Especificação de software
• Projeto e implementação de software
• Validação e verificação de software
• Evolução e manutenção de software
Atividades fundamentais
• A forme de organizar um processo de 
software é uma decisão da empresa
• Por outro lado, há modelos de processo 
consagrados e que podem ser usados 
como base pelas empresas para 
organizarem o seu processo de produção:
• Modelo em cascata
• Modelo de desenvolvimento incremental
• Modelo da engenharia de software orientada 
a reúso
Modelos de processo de software
• As atividades fundamentais são 
consideradas como etapas distintas do 
processo em que o resultado/saída de uma 
etapa é a entrada da etapa seguinte
• No modelo original, havia baixa 
interação/feedback entre as etapas
• O modelo evoluiu e passou a considerar 
que a cada etapa há uma retroalimentação 
das etapas anteriores como forma de lidar 
com as mudanças das necessidades dos 
cliente/requisitos do software
Modelo em cascata
Modelo em cascata
Especificação 
•Requisitos são 
levantados, 
analisados, 
especificados e 
validados
Projeto e 
implementação
•Software é 
projetado e 
programado
Verificação e 
validação
•Software é 
verificado e 
validado por 
meio de testes
Evolução e 
manutenção
• Software é 
implantado, 
mantido e 
evoluído
Modelo em cascata
Especificação 
•Requisitos são 
levantados, 
analisados, 
especificados e 
validados
Projeto e 
implementação
•Software é 
projetado e 
programado
Verificação e 
validação
•Software é 
verificado e 
validado por 
meio de testes
Evolução e 
manutenção
• Software é 
implantado, 
mantido e 
evoluído
F
e
e
d
b
a
c
k
• O modelo em cascata tende a ser 
adequado em situações de 
desenvolvimento de sistemas e software 
onde:
• O escopo abrange uma ampla gama de 
funcionalidades
• Há um nível de complexidade razoável
• Envolve um equipe de desenvolvimento maior
• Há uma maior estabilidade dos requisitos
Modelo em cascata
• O modelo em cascata apresenta algumas 
desvantagens:
• Dificuldade em gerenciar a mudança de 
requisitos ao longo do próprio 
desenvolvimento
• Tendência a maior tempo de liberação do 
produto para o cliente
Modelo em cascata
• As atividades fundamentais são 
intercaladas em uma série de ciclos ao 
final dos quais são geradas versões que 
incrementam a versão anteriormente 
liberada
• Em alguns casos é chamado de modelo 
incremental interativo
• Apresenta um certo nível de atividades 
realizadas simultaneamente
Desenvolvimento incremental
Desenvolvimento incremental
Descrição 
de esboço
Especificação
Projeto e 
implementação
Validação e 
verificação
Versão Inicial
Versões 
intermediárias
Versão Inicial
Atividades simultâneas
• O desenvolvimento incremental tende a 
ser adequado em situações de 
desenvolvimento de sistemas e software 
onde:
• O escopo vai gradualmente abrangendo mais 
funcionalidades
• Há maior dificuldade de definir os requisitos a 
priori
• Há uma pressão do cliente pela entrega de 
funcionalidades com maior rapidez
Desenvolvimento incremental
• O desenvolvimento incremental tem sido 
considerado o mais adequado quando se 
trata de desenvolvimento de software, por 
outro lado apresenta algumas 
desvantagens ou exigências:
• Maior complexidade do gerenciamento do 
desenvolvimento inclusive considerando a 
necessidade de controle de versões
• Uma maior probabilidade de retrabalho ao se 
considerar que um versão pode ser liberada a 
partir de requisitos não plenamente definidos 
e com bugs
Desenvolvimento incremental
Desenvolvimento orientado ao 
reúso
• As atividades fundamentais são 
organizadas considerando a ideia de 
construir componentes de software que 
são utilizados no desenvolvimento de 
novos sistemas/softwares
• O objetivo é reaproveitar especificações e 
códigos com vistas a melhorar a 
produtividade do desenvolvimento
Desenvolvimento orientado ao 
reúso
Especificação 
requisitos
Análise de 
componentes
Alteração de 
requisitos
Projeto com 
reúso
Implementação 
com reúso
Validação e 
verificação
• O desenvolvimento orientado ao reuso 
tende a ser adequado em situações de 
desenvolvimento de sistemas e software 
onde:
• A software house pretende comercializar 
componentes para outras produtoras de 
software
• Há o emprego pela software house de um 
framework de desenvolvimento
• A software house busca aplicar o conceito de 
fábrica de software
Desenvolvimento orientado ao 
reúso
• O desenvolvimento orientado ao reuso tem 
sido considerado o mais adequado quando 
se trata pretende implantar o conceito de 
fábrica de software e se emprega algum 
framework de desenvolvimento, no entanto 
apresenta algumas desvantagens ou 
exigências:
• Maior complexidade do gerenciamento do 
desenvolvimento inclusive considerando a 
necessidade de controle de versões
• Uma equipe de arquitetura de software capaz 
de gerenciar o framework empregado
Desenvolvimento orientado ao 
reúso
• As atividades 
fundamentais são 
organizadas de forma 
diferente de acordo 
com as necessidades 
da empresa de 
software e seus 
clientes e de acordo 
com características do 
tipo de produto a ser 
desenvolvido.
Atividades do processo
Especificação
Projeto
Validação
Evolução
Especificação de software
• Viabilidade técnica, financeira e operacional
ESTUDO DE VIABILIDADE
• Definir o que o software atenderá
LEVANTAMENTO E ANÁLISE DE 
REQUISITOS
• Descrever os requisitos considerando aspectos de negócio 
e de tecnologia
ESPECIFICAÇÃO DE REQUISITOS
• Verificar realismo, consistência e completude dos requisitos
VALIDAÇÃO DE REQUISITOS
Projeto e implementação 
de software
• Definir estrutura do sistema identificando componentes e 
os relacionamentos entre estes componentes
PROJETO DE ARQUITETURA
• Definir interface entre componentes do sistema
PROJETO DE INTERFACE
• Definir como cada componente funcionará
PROJETO DE COMPONENTE
• Definir como os dados serão armazenados
PROJETO DE BANCO DE DADOS
Validação de software
• Empregar técnicas para verificar os componentes
TESTES DE DESENVOLVIMENTO
• Empregar técnicas para testar a integração dos 
componentes
TESTES DE SISTEMA
• Empregar técnicas para averiguar se o sistema 
atende as necessidades do cliente
TESTES DE ACEITAÇÃOEvolução de software
• Manter o sistema em funcionamento e 
atendendo as necessidades do cliente
MANUTENÇÃO DE 
SOFTWARE
• Especificar, projetar, implementar, 
validar novas tecnologias e novas 
funcionalidades para atender 
necessidades do cliente
EVOLUÇÃO
Gerenciando mudanças no software
• Antecipar as mudanças do produto antes 
que haja retrabalho
• Pode envolver prototipação
PREVENÇÃO
• Acomodar as mudanças a um baixo custo
• Pode envolver desenvolvimento 
incremental
TOLERÂNCIA
Prototipação
Estabelecer 
objetivos do 
protótipo
Plano de 
prototipação
Definir 
funcionalidade 
do protótipo
Definição 
geral do 
protótipo
Desenvolver 
o protótipo
Protótipo 
executável
Avaliar o 
protótipo
Relatório de 
avaliação
Entrega incremental
Definir 
esboço de 
requisitos
Atribuir 
requisitos aos 
incrementos
Projetar 
arquitetura 
do sistema
Desenvolver 
incrementos
Validar 
incrementos
Integrar 
incrementos
Validar 
sistema
Implantar 
incrementos
Sistema final
Sistema
Completo
Sistema
incompleto
Framework: modelo espiral Boehm
Framework: Rational Unified Process
Considerações finais
• Processos de software descrevem as 
etapas, métodos, técnicas, ferramentas, 
artefatos e papéis envolvidos no 
desenvolvimento de um produto de 
software
• Há quatro atividades fundamentais para 
engenharia de software
• Especificação
• Projeto e implementação
• Verificação e validação
• Evolução e manutenção
Considerações finais
• Modelos de processo de software são 
formas de organizar um processo
• Há três modelos de processo de software 
principais
• Desenvolvimento em cascata
• Desenvolvimento incremental
• Engenharia orientada ao reuso
Considerações finais
• O gerenciamento da mudança de 
requisitos é um dos desafios a serem 
enfrentados pelos processos de software
• Pode-se considerar como exemplo de 
formas de gerenciar as mudanças
• Prototipação
• Entrega incremental
Considerações finais
• Um framework é um modelo que serve de 
referência a implementação de processos 
de software
• Pode-se considerar como exemplos de 
frameworks
• Modelo de desenvolvimento em espiral de 
Boehm: inclui a análise de riscos no 
desenvolvimento de software
• Rational Unified Process: modelo 
desenvolvimento orientado a objetos que 
inclui abordagem incremental interativa
• SOMMERVILLE, I. Engenharia de software. 9. ed.
São Paulo: Pearson Prentice Hall, 2011. Capítulo 2
– Processos de software.
Referências
univille.br

Outros materiais