Escolar Documentos
Profissional Documentos
Cultura Documentos
de Software
O que pretendemos:
Material produzido com base em SOMMERVILLE (2007), com contribuies de Pressman (2011).
Processo de Software
Conjunto de atividades e resultados
associados que levam produo de
um produto de software
No h um processo ideal e at dentro da
mesma empresa pode haver muitos processos
diferentes utilizados para o desenvolvimento de
software
Padres de processo
Um padro de processo descreve um problema de
processo encontrado durante o trabalho de
engenharia de software, identificando o ambiente
onde foi encontrado e sugerindo uma ou mais
solues comprovadas para o problema.
Em termos mais genricos, um padro de processo
fornece um modelo um mtodo consistente para
descrever solues de problemas no contexto do
processo de software.
Modelo Cascata
Modelo Cascata
Abordagem de Pressman
Modelo Cascata
Definio de
requisitos
Projeto de sistemas
e de software
Implementao e
teste de unidades
Integrao e
teste de sistemas
Operao e
manuteno
Abordagem de Sommerville
Abordagem de Sommerville
Abordagem de Sommerville
Modelo Cascata
Modelo Cascata
Modelo Evolucionrio
Modelo Evolucionrio
Atividades concorrentes
Descrio
do esboo
Especificao
Verso
inicial
Desenvolvimento
Verses
intermedirias
Validao
Verso
final
Modelo Evolucionrio
Vantagens:
* A abordagem evolucionria do desenvolvimento de
software, muitas vezes, mais eficaz do que a
abordagem em cascata, no sentido de produzir
sistemas que atendam s necessidades imediatas dos
clientes
* A especificao pode ser desenvolvida
gradativamente. medida que os usurios desenvolvem
uma compreenso melhor de seus problemas, isso pode
ser refletido na melhoria do software em construo
Modelo Evolucionrio
Problemas:
* Como os softwares so desenvolvidos
rapidamente, no vivel produzir documentos
que reflitam cada verso do sistema
* Os softwares frequentemente so mal
estruturados a mudana constante tende a
corromper a estrutura do software
* Incorporar modificaes torna-se cada vez mais
difcil e oneroso
Projeto de sistema
com reuso
Anlise de
componentes
Desenvolvimento
e integrao
Modificao de
requisitos
Validao
Projeto de sistema
com reuso
Anlise de
componentes
Desenvolvimento
e integrao
Modificao de
requisitos
Validao
Especificao de Requisitos
comparvel com outros processos, como por
exemplo, o modelo cascata
Anlise de
componentes
Projeto de sistema
com reuso
Desenvolvimento
e integrao
Modificao de
requisitos
Validao
Projeto de sistema
com reuso
Anlise de
componentes
Desenvolvimento
e integrao
Modificao de
requisitos
Validao
Projeto de sistema
com reuso
Anlise de
componentes
Modificao de
requisitos
Desenvolvimento
e integrao
Validao
Anlise de
componentes
Projeto de sistema
com reuso
Desenvolvimento
e integrao
Modificao de
requisitos
Validao
Engenharia
em
de Software Baseada
Componentes
Desenvolvimento e integrao
o software que no puder ser comprado, ser
desenvolvido, e os componentes e sistemas COTS
Engenharia
em
Especificao de
requisitos
Projeto de sistema
com reuso
de Software Baseada
Componentes
Anlise de
componentes
Desenvolvimento
e integrao
Modificao de
requisitos
Validao
Engenharia
em
de Software Baseada
Componentes
Engenharia
em
de Software Baseada
Componentes
Vantagens
Engenharia
em
de Software Baseada
Componentes
Problemas
Processos Iterativos
Processos Iterativos
Desenvolvimento Incremental
Desenvolvimento em Espiral
Processos Iterativos
Incremental vs. Espiral uma metfora
Entrega 1
Incremental
Espiral
Entrega 2
Entrega 3
Modelo Incremental
Proposta de Pressman
Modelo Incremental
Situaes em pode ser til:
Proposta de Pressman
Modelo Incremental
Proposta de Pressman
Desenvolvimento Incremental
Desenvolvimento Incremental
Desenvolvimento Incremental
Desenvolvimento Incremental
Definir esboo
dos requisitos
Atribuir requisitos
aos incrementos
Validar
incremento
Integrar
incremento
Validar
Sistema incompleto
Sistema
Final
Desenvolvimento Incremental
Desenvolvimento Incremental
Vantagens
1. Os usurios no precisam esperar at que todo o
software seja entregue, para ento tirar proveito
dele
2. Existe um risco menor de fracasso completo do
software. Embora possam ser encontrados problemas em
alguns incrementos, provvel que alguns
incrementos sejam entregues com sucesso
3. Como as funes prioritrias so entregues
primeiro, inevitvel que elas passem pela maior
parte dos testes
Desenvolvimento Incremental
Problemas
Desenvolvimento Incremental
Modelo em Espiral
Em vez de representar o processo de software como
uma sequncia de atividades com algum retorno de
uma atividade para outra, o processo
representado como uma espiral
Modelo em Espiral
Modelo em Espiral
So definidos os objetivos
especficos para essa fase do
projeto
So identificados os riscos
do projeto e, dependendo dos
riscos podero ser planejadas
estratgias alternativas
Desenvolvimento em Espiral
Definio dos objetivos
Desenvolvimento em Espiral
2. Avaliao e reduo de riscos
Desenvolvimento em Espiral
Avaliao e reduo
de riscos
Desenvolvimento em Espiral
3. Desenvolvimento e validao
Desenvolvimento em Espiral
Desenvolvimento
e
validao
Desenvolvimento em Espiral
4. Planejamento
Desenvolvimento em Espiral
Planejamento
Desenvolvimento em Espiral
Abordagem de Sommerville
Especificao de Software
Especificao de Software
1. Estudo de Viabilidade existe tecnologia atual
para o desenvolvimento do sistema? Existem restries
oramentrias
2. Levantamento e anlise de requisitos obteno
dos requisitos do sistema. Entrevista, observao,
sistemas existentes, ...
3. Especificao de requisitos documento que
especifica os requisitos
4. Validao de requisitos verificao dos
requisitos quanto a pertinncia, consistncia e
integralidade
Especificao de Software
Exemplo de fluxos de atividades da etapa de
Especificao de Software ou Engenharia de Requisitos
Projeto e Implementao de
Software
Um projeto de software uma descrio
estruturada a ser implementada, dos dados que
so parte do sistema, das interfaces entre os
elementos do sistema e dos algoritmos utilizado
Mtodos de Projeto
Projeto estruturado
Projeto e Implementao de
Software
Codificao
Teste x Depurao
Teste
Depurao
Validao de Software
Evoluo de Software
Manuteno de software
Ferramentas CASE
Ferramentas CASE
Ferramentas CASE
Para praticar...
Considerando os modelos de processos
de software discutidos aqui, qual a
melhor opo para qual tipo de
software?
Absorvendo as melhores prticas de
cada modelo, como poderia ser um
modelo timo?
O que acham de elaborar um quadro
comparativo?
Consultar: Pressman (2011), p. 64
Para refletir...
O texto apresentado por Andr
Nascimento, em seu blog
(http://blog.anascimento.net/tag/fabrica-de-software/)
Referncias
Vdeos sugeridos
Aula 2 - Engenharia de Software (Processo de
desenvolvimento de software)
-> aulas desenvolvidas por alunos
Parte 01 - www.youtube.com/watch?v=igeU6B5GmIU
Parte 02 - www.youtube.com/watch?v=0fRv6o3aakw
Ver tambm os vdeos indicados no material sobre