2. ● A produção de um carro em uma fábrica segue um processo bem
definido. O software também é produzido com um processo.
Importância de Processos
“Um processo de desenvolvimento de software define um conjunto de
passos, tarefas, eventos e práticas que devem ser seguidos por
desenvolvedores de software, na produção de um sistema.”
3. ● Na prática, os sistemas são desenvolvidos por equipes, que precisam
de um ordenamento.
● Os processos são importantes não apenas para empresas, mas
também para os desenvolvedores.
Processo de Software
4. Processo de Software (etapas)
● Não existe um processo ideal.
● Existem atividades comuns aos processos de software, são elas:
Especificação de software: Definição das funcionalidades e das
restrições sobre suas operações.
● Projeto e implementação de software: produção do software que
atenda às especificações solicitadas.
● Validação de software: O software deve ser validado para garantir
que ele faça o que o cliente deseja.
● Evolução de software: o software deve evoluir para atender às
necessidades mutáveis do cliente.
5. Processo de Software (etapas)
● É uma representação abstrata de um processo de software.
● Representa um processo sob uma determinada perspectiva.
● Os principais modelos de processos são:
○ Modelo cascata
○ Modelo Incremental
○ Engenharia de software baseada em componentes
6. Processo de Software (etapas)
● Por que utilizar um modelo de processo de software??
○ Padroniza o desenvolvimento de software.
○ Padronização dos artefatos de software.
○ Melhora a comunicação da equipe.
● Consequentemente, agrega qualidade ao software.
7. Modelo Cascata
● Foi o primeiro modelo de processo de software proposto.
● É um modelo sequencial.
● Devido ao encadeamento de suas fases, o modelo ficou
conhecido como modelo cascata.
● Uma nova fase só pode ser iniciada com a finalização da
anterior.
● Possui 5 fases definidas:
○ Requisitos, projeto, implementação, integração e
manutenção.
9. Modelo Cascata
Vantagens
● O modelo apresenta uma grande vantagem quando o escopo do
trabalho é claramente definido. Se as especificações estiverem corretas
(o que é muito difícil em projetos de médio e grande porte), um software
pode ser desenvolvido de forma muito rápida.
Desvantagens:
● O modelo não possui flexibilidade;
● O cliente deve ter muita paciência;
● A equipe de desenvolvimento está sempre “quase acabando”.
10. Modelo Incremental
● O Modelo Incremental surge como uma melhoria do Modelo em Cascata.
● Cada pedaço (incremento) é desenvolvido de forma linear, como no Modelo
em Cascata, e em seguida exposto aos comentários dos clientes
(SOMMERVILLE, 2011)
Sommerville (2011)
12. Modelo Incremental
Vantagens
● O cliente não precisa receber todo o sistema para poder usá-lo;
● É mais fácil obter feedback dos clientes sobre o desenvolvimento que foi
feito;
● “O custo de acomodar as mudanças nos requisitos do cliente é reduzido”.
(SOMMERVILLE, 2011).
Desvantagens:
● Sistemas de grande porte necessitam de um framework ou arquitetura estável;
● Segundo SOMMERVILLE (2011), essa parte deve ser planejada com antecedência, e
não pode ser desenvolvida de forma incremental.
13. Engenharia de software baseada em
componentes
Sommerville (2011)
A abordagem orientada ao reuso depende de uma grande base de componentes
de softwares reusáveis e algum framework de integração desses componentes.
14. Engenharia de software baseada em
componentes
Vantagens
● Reduz a quantidade de software a ser desenvolvido
● Espera-se reduzir os custos e os riscos
● Espera-se uma entrega do produto mais rápida ao cliente
Desvantagens:
● Pode-se desenvolver um produto que não atenda aos requisitos do cliente
● Pode ser mais difícil evoluir os sistemas