O documento discute processos de desenvolvimento de software, incluindo: 1) Processos de software definem atividades parcialmente ordenadas para obter software de qualidade; 2) Atividades incluem especificação, projeto, implementação, teste e evolução; 3) Dois modelos básicos são cascata e iterativo/incremental.
8. Definição de Processos de Software
• Um processo de desenvolvimento de
software é um conjunto de atividades,
parcialmente ordenadas, com a finalidade
de obter um produto de software.
• Considerado um importante mecanismo
para se obter software de qualidade e
cumprir corretamente os contratos de
desenvolvimento.
15. É o processo que
define o ciclo de vida
de um software
O que está por baixo dos panos?
16. Atividades básicas no processo de
desenvolvimento
1. Especificação: define a(s) funcionalidade(s) do
software e as restrições sobre sua operação.
2. Projeto e implementação: o software que
atenda a especificação deve ser produzido
3. Teste e validação: o software deve ser validado
para garantir que ela faça o que o cliente deseja.
4. Evolução: o software deve evoluir para atender
aos novos requisitos que naturalmente surgirão.
17. Atividade 1:
Especificação
• Foco é no PROBLEMA!
• Eventos desta atividade:
– Reuniões com o cliente
– Levantamento dos requisitos
– Conversas com os usuários e visitas “in loco”
– etc ...
18. Atividade 2:
Projeto e implementação
• Foco é na SOLUÇÃO!
• Eventos desta atividade:
– Definição da metodologia para condução do projeto
• Cascata, Scrum, Kanban, XP, GoHorse, etc
– Definição do paradigma de programação
• Procedural, Orientado a objeto, Orientado a serviços, etc
– Prototipação
• Telas, relatórios, sequencias de operação, etc
– Codificação
• Escolha da linguagem de programação mais adequada
19. Atividade 3:
Teste e validação
• Foco é na HOMOLOGAÇÃO!
• O que geralmente acontece:
– Validação do código (testes de unidade)
– Validação interna (com o time)
– Validação externa (com o cliente)
20. Atividade 4:
Evolução
• Foco é na MELHORIA CONTÍNUA!
• O que geralmente acontece:
– Corrige bugs e/ou requisitos mal compreendidos
– Manutenção, ajustes e adaptações dos cenários não
previstos
– Planeja novas funcionalidades
– Libera uma nova versão do produto
21. Dois modelos
básicos de processos
A escolha de qual utilizar varia de
acordo com o cenário específico