Você está na página 1de 38

Processos e Modelos de

Desenvolvimento
Equipe Null_Void( )
Processo de Desenvolvimento
➔ Um processo de desenvolvimento de software tem como objetivo a
formalização e sistematização de atividades relacionadas a elaboração de
sistemas. Nele são definidos:
◆ As atividades a serem executadas ao longo do projeto
● quando, como e por quem serão executadas
◆ Prover pontos de controle para verificar o andamento
◆ Padronizar o desenvolvimento de software
Processo de Desenvolvimento
➔ Do que é composto?
◆ Um processo de desenvolvimento de software possui 4 etapas básicas:

Especificação: definição das funcionalidades do software e premissas para sua execução;

Desenvolvimento: construção do software de acordo com a especificação;

Validação: validação do software para verificar se ele atende as necessidades dos usuários;

Evolução: evolução do software de modo a atender as modificações das necessidades dos


usuários.
Objetivos
➔ Processos de software visam assegurar o desenvolvimento de software:
◆ com prazos e necessidade de recursos definidos;
◆ com elevada produtividade (de forma econômica);
◆ com qualidade assegurada.

➔ Processos permitem :
◆ organizar;
◆ instrumentar;
◆ planejar;
◆ acompanhar projetos;
◆ treinar equipes.
Processo de Desenvolvimento
➔ Sem o uso de processos....
◆ Procedimentos existentes na organização não são documentados e usados de forma
consistente na prática;
◆ Erros são cometidos repetidamente;
◆ Dificuldade de prever cronogramas e orçamentos;
◆ Alto índice de defeitos, retrabalho e desperdício;
◆ Dificuldade de implementar boas práticas e lições aprendidas;
◆ Dificuldade de realizar ações para prevenção de defeitos.
Componentes de Processos
Componentes de Processos
➔ Artefato: é um resultado de uma atividade, exemplos:
◆ documento revisto e aceito
◆ módulo implementado, testado e aceito
◆ construto integrado, testado e aceito
◆ framework documentado, implementado, testado e aceito
◆ quando entregue ao usuário (cliente) o artefato é um produto

➔ Insumo
◆ elemento necessário para a realização de uma tarefa ou atividade
◆ pode ser um elemento de saída de outras atividades ou tarefas
Componentes de Processos
➔ Tarefa
◆ é uma ação desempenhada por alguma pessoa visando a realização ou monitoramento
do projeto
◆ não representa uma evidência de progresso no desenvolvimento
◆ consome recursos - consumo real
● esforço (tempo de pessoa)
● equipamento
● financeiro
Componentes de Processos
➔ Atividade
◆ conjunto de tarefas que levam a um ou mais artefatos de qualidade controlada
◆ representa uma evidência de progresso no desenvolvimento
◆ permite o controle da qualidade do resultado
◆ o esforço é medido através das tarefas constituintes

◆ Atividades são “mini-projetos”


● possuem início e fim definidos
● consomem um volume finito de recursos
● produzem artefatos definidos
● possuem critérios de conclusão estabelecidos
Componentes de Processos
➔ Ferramentas e equipamentos
◆ auxiliam a execução das atividades e tarefas dos processos
◆ podem automatizar partes da execução das atividades e tarefas
◆ agilizam a execução dos processos

➔ Papel
◆ descreve como as pessoas se comportam no processo e quais são as
◆ responsabilidades que elas têm
◆ requer habilidades específicas necessárias
● papéis não são pessoas
○ pessoas executam papéis
Exemplo de Atividades Relacionadas a Papel
Exemplo de Atividade
➔ Atividade: Realizar estimativas para o projeto
➔ Descrição
◆ A partir do escopo preliminar do projeto, detalhar as atividades necessárias a sua
realização, as estimativas de consumo de recursos, os prazos e orçamentos.
➔ Papel:
◆ Gerente de Projeto
➔ Artefatos de Entrada:
◆ Escopo do projeto; Plano do projeto; Acordo de serviço; Estrutura analítica do projeto
➔ Artefatos de Saída:
◆ Estimativas de custo da atividades; Estimativa de esforço das atividades, Cronograma e
Plano do projeto atualizados
➔ Tarefas:
◆ Detalhar atividades e recursos; Detalhar cronograma; Detalhar estimativa de custo das
atividades; Detalhar orçamento do projeto
Modelos de Ciclos de Vida
➔ O que é ciclo de vida?
◆ Conjuntos de fases que devem ser executadas para o desenvolvimento de um produto
de software. O ciclo de vida determina a ordem e interação entre as fases e atividades.
➔ Modelos de ciclo de vida
◆ são representações abstratas de processos
◆ descrevem processos a partir de uma perspectiva específica
◆ podem ser vistos como frameworks de processos
◆ devem ser aplicados e personalizados segundo necessidades específicas
➔ Alguns exemplos:
◆ Cascata
◆ Incremental
◆ Espiral
Modelo Cascata
➔ Fases
◆ Definição e análise de requisitos
◆ Projeto do sistema e do software
◆ Implementação e testes de unidade
◆ Integração e testes do sistema
◆ Operação e manutenção
Modelo Cascata
➔ Vantagens
◆ Torna o processo de desenvolvimento estruturado;
◆ Tem uma ordem sequencial de fases;
◆ Cada fase cai em cascata na próxima e cada fase deve estar
terminada antes do início da seguinte;
◆ Todas as atividades identificadas nas fases do modelo são
fundamentais e estão na ordem certa.
Modelo Cascata
➔ Desvantagens
◆ Dificuldade de acomodar as mudanças após o processo ter sido
iniciado;
◆ Particionamento inflexível do projeto em fases distintas;
◆ Dificuldade de responder a requisitos do usuário que mudam.
Modelo Cascata
Modelo Incremental
➔ Também chamado desenvolvimento iterativo.

➔ Ao invés de entregar o sistema como uma única entrega, particiona-se o


desenvolvimento e a entrega em incrementos, com cada incremento
contendo parte da funcionalidade requerida.
Modelo Incremental
➔ Os requisitos do usuário são priorizados e os requisitos de prioridade
mais alta são incluídos nos incrementos iniciais

➔ Uma vez que o desenvolvimento de um incremento é iniciado, os


requisitos são congelados, ainda que os requisitos para incrementos
posteriores continuem a evoluir
Modelo Incremental
➔ Vantagens
◆ Cada incremento pode agregar valor para o cliente, portanto a
funcionalidade do sistema está disponível mais cedo
◆ Incrementos iniciais atuam como um protótipo para ajudar a
descobrir requisitos para os incrementos posteriores
◆ Menor risco de falha do projeto como um todo
◆ Os serviços de mais alta prioridade do sistema tendem a receber a
maior parte dos
◆ testes
Modelo Incremental
➔ Desvantagens
◆ Podem surgir problemas relativos à arquitetura do sistema, porque
nem todos os requisitos estão reunidos na frente de todo o ciclo de
vida do software;
◆ Cada fase de uma iteração é rígida e não se sobrepõem uns aos
outros;
Modelo Incremental
Modelo Espiral
➔ O processo é representado como uma espiral, em vez de uma seqüência
de atividades com caminhos de retorno;

➔ Cada volta na espiral representa uma fase no processo;

➔ Não há fases fixas, tais como especificação ou projeto


◆ As voltas na espiral são escolhidas dependendo do que for exigido
Modelo Espiral
➔ Este modelo baseia-se em quatro principais atividades:
◆ Determinação dos objetivos, alternativas e restrições;
◆ Análise de risco e prototipação;
◆ Validação e verificação;
◆ Planejamento da fase seguinte.
Modelo Espiral
Modelo Espiral - 1º Quadrante
➔ Um ciclo se inicia com a tarefa:
◆ “Determinação de objetivos,alternativas e Comunicação com o cliente
restrições”

➔ Objetivos principais
◆ comprometimento dos envolvidos
◆ estabelecimento de uma estratégia para
alcançar os objetivos da fase que se inicia
Modelo Espiral - 2º Quadrante
➔ Na segunda tarefa, “Avaliação de
alternativas, identificação e solução de Análise de riscos

riscos”, executa-se uma análise de risco.


➔ Protótipos são uma forma de avaliar
riscos.
➔ Objetivos principais
◆ detectar riscos
◆ avaliar soluções que ofereçam menor risco de
implementação
◆ adotar atividades para reduzir os ricos
principais

Engenharia
Modelo Espiral - 3º Quadrante
➔ Na terceira tarefa ocorre o
desenvolvimento do produto.

Construção
➔ Objetivos principais e
◆ definir e validar os requisitos adaptação
◆ projetar o software
◆ projetar a validação e verificação
◆ codificar
◆ realizar testes
Avaliação do cliente
● integração
● unidade
● aceitação
Modelo Espiral - 4º Quadrante
➔ Na quarta tarefa o produto é avaliado e
se prepara para iniciar um novo ciclo
➔ O projeto é revisado e a próxima fase da
espiral é planejada
➔ Objetivos principais
◆ planejar requisitos
◆ planejar ciclo de vida
◆ planejar desenvolvimento
◆ planejar integração e testes
Planejamento
Modelo Espiral
➔ Problemas do modelo espiral:
◆ O modelo em espiral, por suas características de avaliação e
planejamento baseadas em risco, exige que se tenha gerentes e
técnicos experientes.
◆ As tarefas gerenciais para acompanhamento e controle do projeto
tornam-se mais difíceis, uma vez que o modelo em espiral pode levar
ao desenvolvimento em paralelo de múltiplas partes do projeto, cada
uma sendo abordada de modo diferenciado.
Considerações Finais
➔ Definir o ciclo de vida adequado às características do projeto é essencial
para o seu sucesso
➔ Deve-se analisar os pontos fortes e fracos de cada modelo de ciclo de
vida e escolher o que ofereça melhores condições para o
desenvolvimento do software
➔ Pontos importantes
◆ variação da especificação dos requisitos ao longo do projeto
◆ complexidade do sistema a ser desenvolvido
◆ características específicas do projeto
Referências
● http://protocoloti.blogspot.com.br/2012/03/os-modelos-de-desenvolvimento-de.html

● http://engenhariadesoftwareuesb.blogspot.com.br/2012/12/blog-post.html

● https://www.youtube.com/watch?v=Wq9hH8vwV00
Equipe Null_Void( ) é…
➔ Ana Melissa void Null() {
String null = null;
➔ Filipe Silva if (null == null) {
return null;
➔ João Paulo
} else {
➔ Mattheus Peixoto return null;
}
➔ Yuri Alencar }

VALEU!
Exercícios
1) São exemplos de modelos de ciclo de vida de softwares:

a) Incremental, Prototipagem, Evolutivo, RUP.


b) Engenharia de Software, Espiral, Ruby, Incremental
c) Backlog, Sprint, Evolucional, Protótipo
d) Evolução, Espiral, Prototipagem, Incremental
Exercícios
2) São etapas do processo de desenvolvimento de software:

a) desenvolvimento, validação, evolução, especificação


b) validação, elicitação, evolução, desenvolvimento
c) especificação, elicitação, desenvolvimento, entrega
d) especificação, desenvolvimento, validação, teste
Exercícios
3) Acerca do modelo de desenvolvimento cascata, informe V para verdadeiro
e F para falso:

( ) uma de suas vantagens é que torna o processo de desenvolvimento estruturado.

( ) uma desvantagem é que podem surgir problemas relativos à arquitetura do sistema,


porque nem todos os requisitos estão reunidos na frente de todo o ciclo de vida do
software;

( ) Um dos principais objetivos é avaliar soluções que ofereçam menor risco de


implementação.

( ) uma de suas desvantagem é a dificuldade de responder a requisitos do usuário


quando mudam.
Exercícios
4) A qual modelo de desenvolvimento de software a assertiva abaixo se refere?

"Ao invés de entregar o sistema como uma única entrega, particiona-se o

desenvolvimento e a entrega em incrementos, com cada incremento

contendo parte da funcionalidade requerida."

a) Modelo incremental
b) Modelo espiral
c) Modelo cascata
d) Modelo RUP
Exercícios
5) Um analista desenvolve um software e identifica que os seus requisitos iniciais estão
razoavelmente bem definidos, mas o escopo geral do desenvolvimento não permite um
processo puramente linear. Ele sabe que precisa, em curtíssimo prazo, prover um
conjunto limitado de funcionalidades do software para os usuários, que serão refinadas
e expandidas em versões futuras.

Qual o modelo de ciclo de vida de desenvolvimento de software mais adequado a esse


caso?

a) Incremental.
b) Cascata.
c) Espiral.
d) Formal.
e) Prototipação.

Você também pode gostar