Desafios do desenvolvimento de software Combinação de fatores. Dinâmica da mudanças. Detalhes. Pressão do tempo. Características: Muito difícil. Alto risco. Grande desafio. Oportunidades: Criação. Satisfação das necessidades sociais e individuais. Diversidade da equipe. Espírito de equipe.
Engenharia de Software em Camadas Qualidade Processos Métodos Ferramentas
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 Integração da solução Desenvolvi-mento técnico Diagnóstico da 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 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 Software Ciclo de Resolução de Problemas Diagnóstico Definição do problema Desenvolvimento técnico Integração da solução
Modelos de Processos de Software Fases genéricas da engenharia de software Definição Desenvolvimento 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 Design Codificação Teste Incremento 1 Análise Design Codificação Teste Incremento 2 Análise Design Codificação Teste Incremento 3 . . .
Modelos de Processos de Software Espiral Avaliação pelo cliente Construção Engenharia Análise de risco Planejamento Interação com cliente Início
Modelos de Processos de Software Desenvolvimento 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 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