Disciplina:
Engenharia e Qualidade de Software
Aula 02
Processo de Software
Professor:
Danilo Pereira
● 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.”
● 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
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.
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
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.
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.
Modelo Cascata
Sommerville (2011)
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”.
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)
Modelo Incremental
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.
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.
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
Aula 02 - Processo de Software I.pdf

Aula 02 - Processo de Software I.pdf

  • 1.
    Disciplina: Engenharia e Qualidadede Software Aula 02 Processo de Software Professor: Danilo Pereira
  • 2.
    ● A produçãode 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 ● Foio 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.
  • 8.
  • 9.
    Modelo Cascata Vantagens ● Omodelo 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 ● OModelo 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)
  • 11.
  • 12.
    Modelo Incremental Vantagens ● Ocliente 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 softwarebaseada 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 softwarebaseada 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