desafios do desenvolvimento de software características: muito difícil. alto risco. grande...
TRANSCRIPT
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
QualidadeQualidade
ProcessosProcessos
MétodosMétodos
FerramentasFerramentas
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.
Definição do problema
Integração da solução
Desenvolvi-mento técnico
Diagnóstico da situação
atual
Fases do Processo de Resolução de Problema
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
Definição doproblema
Integraçãoda solução
Desenvolvi-mento técnico
Diagnósticoda situação
atual
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 do Processo de Resolução de um Problema
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 SoftwareCiclo de Resolução de Problemas
Diagnóstico
Definição do problema
Desenvolvimento técnico
Integração da solução
Modelos de Processos de SoftwareFases genéricas da engenharia de software
Definição
Desenvolvimento
Suporte
Modelos de Processos de SoftwareSequencial
Design
Codificação
Teste
Análise
Análise de sistemaEngenharia de informação
Modelos de Processos de SoftwarePrototipagem
Captura dos requisitos
InícioDesenvolvimento
rápido
Construção
Avaliação do protótipo pelo cliente
Engenharia de produto
Conclusão
Melhorias
Modelos de Processos de SoftwareIncremental
Design Codificação TesteAnálise Incremento 1
Design Codificação TesteAnálise Incremento 2
Design Codificação TesteAnálise Incremento 3
. . .
Modelos de Processos de SoftwareEspiral
Avaliação pelo cliente Construção
Engenharia
Análise de risco
Planejamento
Interação com cliente
Início
Modelos de Processos de SoftwareDesenvolvimento Rápido de Aplicações
Modelagem do negócio
Modelagem dos dados
Modelagem do processo
Geração da aplicação
Testes e atualização
Time 1
Modelagemdo negócio
Modelagemdos dados
Modelagemdo processo
Geração daaplicação
Testes eatualização
Modelagemdo negócio
Modelagemdos dados
Modelagemdo processo
Geração daaplicação
Testes eatualização
Time 2
Time 3
. . .
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