27
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.

Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

Embed Size (px)

Citation preview

Page 1: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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.

Page 2: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

Engenharia de Software em Camadas

QualidadeQualidade

ProcessosProcessos

MétodosMétodos

FerramentasFerramentas

Page 3: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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?)

Page 4: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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.

Page 5: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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.

Page 6: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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.

Page 7: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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.

Page 8: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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.

Page 9: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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

Page 10: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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

Page 11: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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

Page 12: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

O que foi identificado como uma necessidade do cliente

Page 13: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

O que foi especificado

Page 14: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

O que foi projetado

Page 15: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

O que foi entregue para o cliente

Page 16: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

O que o cliente acabou comprando

Page 17: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

O que o cliente queria

Page 18: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças
Page 19: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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

Page 20: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

Modelos de Processos de SoftwareCiclo de Resolução de Problemas

Diagnóstico

Definição do problema

Desenvolvimento técnico

Integração da solução

Page 21: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

Modelos de Processos de SoftwareFases genéricas da engenharia de software

Definição

Desenvolvimento

Suporte

Page 22: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

Modelos de Processos de SoftwareSequencial

Design

Codificação

Teste

Análise

Análise de sistemaEngenharia de informação

Page 23: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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

Page 24: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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

. . .

Page 25: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

Modelos de Processos de SoftwareEspiral

Avaliação pelo cliente Construção

Engenharia

Análise de risco

Planejamento

Interação com cliente

Início

Page 26: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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

. . .

Page 27: Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande desafio. Desafios: Combinação de fatores. Dinâmica da mudanças

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