Desafios do desenvolvimento de software Características: Muito difícil. Alto risco. Grande...

Preview:

Citation preview

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

Recommended