Desafios do desenvolvimento de software
Características:
•Muito difícil.
•Alto risco.
•Grande desafio.
Desafios:
•Combinação de fatores.
•Dinâmica da mudanças.
•Detalhes.
•Pressão do tempo.
Oportunidades:
•Criação.
•Satisfação das necessidades
sociais e individuais.
•Diversidade da equipe.
•Espírito de equipe.
Engenharia de Software em Camadas
Ferramentas
Métodos
Processos
Qualidade
Desenvolvimento de software
 É um conjunto de atividades que começa pela percepção de
uma oportunidade de mercado (idéia) e termina na produção
(implementação), venda e entrega (instalação) de um
programa.
 Are we building the product right?
(Estamos desenvolvendo corretamente o programa?)
 Are we building the right product?
(Estamos desenvolvendo o programa correto?)
Processo
• Pode ser definido por suas entradas e saídas,
função a ser desempenhada e regras de operação.
– A função representa a transformação da entrada numa
saída.
– As funções são associadas através de relações de
precedência.
– Antes de uma função ser executada devem ocorrer uma
dada pré-condição e após a função ter sido executada
uma dada pós-condição deve também ser satisfeita.
– O início e o fim da função são marcados por eventos.
Modelo de Referência de Processo
Processo de negócio:
Sequência de etapas para
transformar uma dada entrada em uma saída
desejada.
Modelo de referência de processo: Integração de
conceitos bem conhecidos de reengenharia dos
processos de negócio, benchmarking e controle de
processos em uma estrutura transfuncional.
Modelo de Referência de Processo
• Descrições padronizadas dos processos de gestão.
• Estrutura de relacionamento entre os processos
padronizados.
• Métricas padronizadas para avaliar o desempenho
de processo.
• Práticas de gestão que proporcionam desempenho
similar aos das empresas melhor avaliadas.
• Alinhamento padronizado com as facilidades e
funcionalidades proporcionadas por software.
Modelo de Referência de Processo
• Uma vez identificado um processo de software
através do modelo de referência poder-se-á:
– Implementar o processo de maneira objetivo visando
alcançar vantagem competitiva.
– Descrever e difundir sem ambiguidade.
– Medir, administrar e controlar.
– Adequar para objetivos específicos.
Da Idéia ao Conceito
• A idéia precisa ser transformada num conceito para
poder ser avaliada e comunicada de forma a que
todos na organização possam entendê-lo,
operacionalizá-lo e vendê-lo.
• Forma  A forma global do produto ou serviço.
• Função  A maneira como o produto ou serviço
opera.
• Propósito  Necessidades que o produto ou serviço
deve satisfazer.
• Benefícios  Vantagens que o produto ou serviço
trará aos consumidores ou usuários.
Fases do Processo de Resolução de Problema
Definição do
problema
Diagnóstico
da situação
atual
Desenvolvimento técnico
Integração
da solução
Fases da Engenharia de Software
• Definição
– Análise e especificação de
requisitos
– Planejamento
• Desenvolvimento
– Projeto funcional
– Projeto detalhado e
codificação
– Testes
• Suporte
–
–
–
–
Correção
Adaptação
Prevenção
Evolução
Fases da
Engenharia de Software
• Definição
Fases do Processo de
Resolução de um Problema
– Análise e especificação de
requisitos
– Planejamento
Definição do
problema
• Desenvolvimento
– Projeto funcional
– Projeto detalhado e
codificação
– Testes
• Suporte
–
–
–
–
Correção
Adaptação
Prevenção
Evolução
Diagnóstico
da situação
atual
Desenvolvimento técnico
Integração
da solução
O que foi identificado como uma
necessidade do cliente
O que foi especificado
O que foi projetado
O que foi entregue para o cliente
O que o cliente acabou comprando
O que o cliente queria
Modelos de Processos de Software
(Paradigmas de Ciclo de Vida)
•
•
•
•
•
•
•
•
•
Resolução de problemas
Processo genérico
Sequencial
Prototipagem
Incremental
Espiral
Desenvolvimento rápido de aplicações – RAD
Métodos ágeis
RUP
Modelos de Processos de Software
Ciclo de Resolução de Problemas
Definição do
problema
Desenvolvi
mento
técnico
Diagnóstico
Integração
da solução
Modelos de Processos de Software
Fases genéricas da engenharia de software
Definição
Desenvol
vimento
Suporte
Modelos de Processos de Software
Sequencial
Análise
Design
Codificação
Análise de sistema
Engenharia de informação
Teste
Modelos de Processos de Software
Prototipagem
Início
Captura dos
requisitos
Desenvolvimento
rápido
Conclusão
Engenharia
de produto
Construção
Melhorias
Avaliação
do protótipo
pelo cliente
Modelos de Processos de Software
Incremental
Análise
Análise
Análise
Design
Design
Design
Codificação
Codificação
Codificação
Incremento 1
Teste
Teste
Teste
Incremento 2
Incremento 3
...
Modelos de Processos de Software
Espiral
Planejamento
Interação
com cliente
Início
Avaliação
pelo cliente
Análise
de risco
Engenharia
Construção
Modelos de Processos de Software
Desenvolvimento Rápido de Aplicações
Modelagem
do negócio
Time 1
Modelagem
dos dados
Modelagem
do processo
Modelagem
do negócio
Geração da
aplicação
Modelagem
dos dados
Time 2
Testes e
atualização
Modelagem
do processo
Modelagem
do negócio
Geração da
aplicação
Modelagem
dos dados
Time 3
Testes e
atualização
Modelagem
do processo
Geração da
aplicação
...
Testes e
atualização
Modelos de Processos de Software
(Paradigmas de Ciclo de Vida)
• Métodos ágeis
– Scrum
– XP, Extreme Programming
• RUP
• Exercício:
– Comparar os processos RUP com Scrum
Download

Desafios do desenvolvimento de software