Modelos de Processos de Software, Modelo Cascata (waterfall), Desenvolvimento incremental, Engenharia de Software Orientada a Reuso, Atividades do Processo, Especificação, Prototipação
5. • Um processo de software é um conjunto de
atividades relacionadas que levam à produção de
um produto de software. Essas atividades podem
envolver o desenvolvimento de software a partir do
zero em uma linguagem padrão de programação
como C# ou Java.
Processo de Software
6. Modelos de Processos de
Software
• O modelo de um processo de software é uma
representação simplificada de um processo de
software, e existem vários modelos de processo
de software (ou paradigmas de engenharia de
software)
Obs. cada uma representa uma tentativa de
colocar ordem em uma atividade inerentemente
caótica
11. Modelo em Cascata
• Popularizado na década de 1970;
• Características:
• Composto por uma sequência de atividades;
• Uma atividade começa a executar quando a outra termina;
• Resultado de uma etapa é utilizado na etapa seguinte;
• Guiado por documentos;
• Ciclo de vida mais antigo e mais utilizado.
13. Problemas Comuns no
Modelo em Cascata
• Projetos reais raramente seguem o fluxo sequencial que o
modelo propõe;
• ︎ Logo no início é difícil estabelecer explicitamente todos os
requisitos. No começo dos projetos sempre existe uma
incerteza natural;
• ︎ O cliente deve ter paciência. Uma versão executável do
software só fica disponível numa etapa avançada do
desenvolvimento (na instalação);
• ︎ Difícil identificação de sistemas legados (não acomoda a
engenharia reversa).
15. Desenvolvimento
Incremental
• O desenvolvimento incremental é baseado na ideia
de desenvolver uma implementação inicial, expô-la
aos comentários dos usuários e continuar por meio
da criação de várias versões até que um sistema
adequado seja desenvolvido.
17. Problemas Comuns no
Desenvolvimento Incremental
• Do ponto de vista de gerenciamento, a abordagem
incremental tem dois problemas:
• O processo não é visível. Os gerentes precisam
de entregas regulares para mensurar o
progresso.
• A estrutura do sistema necessita de diversas
refatorações para acomodar as mudanças, e
esta tarefa consome tempo e dinheiro.
18. Engenharia de Software
Orientada a Reuso
• Códigos, componentes ou sistemas completos que
possuem semelhanças com a implementação
desejada são identificados, modificados/
adaptados para serem incorporados ao projeto.
20. Atividades do Processo
• Processos reais de software são intercalados
com sequências de atividades técnicas, de
colaboração e de gerenciamento, com o
intuito de especificar, projetar, implementar e
testar um sistema de software.
21. Especificação do Software
• É o processo de compreensão e definição dos
serviços requisitados do sistema e identificação de
restrições relativas à operação e ao
desenvolvimento do sistema.
24. Projeto e Implementação
• É o processo de conversão de uma especificação do sistema
em um sistema executável. Sempre envolve processo de
projeto e programação de software, mas, se for usada um
abordagem incremental para o desenvolvimento, também
pode envolver o refinamento da especificação do software.
• Definição da arquitetura
• Projeto de Interfaces e Componentes
• Modelo de Dados
• Codificação
25. Validação de Software
• Tem a intenção de mostrar que um software se
adequa à suas especificações ao mesmo tempo
que satisfaz as especificações do cliente.
• Testes de desenvolvimento
• Testes de sistema (integrado)
• Teste de aceitação
26. Evolução do Software
• Com o decorrer do tempo o software pode mudar,
e o mesmo deverá ser flexível para acomodar
futuras mudanças.
27. Prototipação
• O objetivo é entender os requisitos do usuário e,
obter uma melhor definição dos requisitos do
sistema.
• Podendo ajudar a validar requisitos e estudar
soluções especificas para apoiar o projeto de
interface do usuário.
29. Entrega Incremental
• É uma abordagem para desenvolvimento de
software na qual alguns dos incrementos
desenvolvidos são entregues ao cliente e
implementados para uso em um ambiente
operacional.
30. Estudo de Caso Faz Site
• Atividade individual.
• Para o estudo de caso Faz Site, crie um processo
de software que na concepção de vocês
garantiriam a entrega do projeto em questão com
sucesso.