Engenharia de Software Slide 05 Modelos de Processos Maurício Archanjo Nunes Coelho mauricio.coelho@ifsudestemg.edu.br Instituto Federal Análise de Sistemas
Por que surgiu a Engenharia de Software?
Resposta à Crise de Software A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE)
Engenharia de Software Outra definição: É a criação e a utilização de sólidos princípios de engenharia a fim de obter softwares econômicos que sejam confiáveis e que trabalhem eficientemente em máquinas reais Importante: Disciplina Adaptabilidade Agilidade
Engenharia de Software Uma Tecnologia em Camadas ferramentas métodos processo foco na qualidade
Engenharia de Software Uma Tecnologia em Camadas ferramentas métodos processo foco na qualidade É o solo A Engenharia de Software deve se apoiar num compromisso organizacional com a qualidade.
Engenharia de Software Uma Tecnologia em Camadas ferramentas métodos processo foco na qualidade É o alicerce É a cola que gruda as camadas de tecnologias e permite um desenvolvimento de software racional e em tempo;
Engenharia de Software Uma Tecnologia em Camadas ferramentas métodos processo foco na qualidade É o como fazer Englobam um conjunto de tarefas que inclui análise de requisitos, projeto, construção de programas, teste e manutenção
Engenharia de Software Uma Tecnologia em Camadas ferramentas métodos processo foco na qualidade É o instrumento apropriado Dão suporte automatizado ou semi-automatizado ao processo e aos métodos; quando as ferramenta se integram tem-se um sistema denominado CASE (Computer Aided Software Engineering)
Vamos falar um pouco dos processos de software! (ou modelos de processo de software)
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO CONSTRUÇÃO SOFTWARE PRODUTO MANUTENÇÃO
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO CONSTRUÇÃO SOFTWARE PRODUTO MANUTENÇÃO o o que informações a serem processadas funções e desempenho desejados interfaces que devem ser estabelecidas restrições do projeto critérios de validação requeridos
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO Análise de Sistema Planejamento do Projeto Análise de Requisitos CONSTRUÇÃO SOFTWARE PRODUTO MANUTENÇÃO
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO CONSTRUÇÃO SOFTWARE PRODUTO MANUTENÇÃO como como devem ser projetadas a estrutura de dados e a arquitetura do software como os procedimentos devem ser implementados como o projeto deve ser traduzido para uma linguagem de programação como o teste deve ser executado.
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO Análise de Sistema Planejamento do Projeto Análise de Requisitos CONSTRUÇÃO Projeto Codificação Teste SOFTWARE PRODUTO MANUTENÇÃO
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO CONSTRUÇÃO SOFTWARE PRODUTO MANUTENÇÃO mudanças correções decorrentes de erros manutenção corretiva adaptações requeridas decorrentes de alterações no meio ambiente manutenção adaptativa melhoramentos relacionados a novas funções desejadas pelo usuário manutenção perfectiva.
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO Análise de Sistema Planejamento do Projeto Análise de Requisitos CONSTRUÇÃO Projeto Codificação Teste SOFTWARE PRODUTO MANUTENÇÃO Entendimento Modificação Revalidação
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO Análise de Sistema Planejamento do Projeto Análise de Requisitos DESENVOLVIMENTO CONSTRUÇÃO Projeto Codificação Teste SOFTWARE PRODUTO MANUTENÇÃO Entendimento Modificação Revalidação
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO Análise de Sistema Planejamento do Projeto Análise de Requisitos CONSTRUÇÃO Projeto Codificação Teste SOFTWARE PRODUTO OPERAÇÃO MANUTENÇÃO Entendimento Modificação Revalidação
Fases Genéricas dos Modelos de Processo de Software DEFINIÇÃO Análise de Sistema Planejamento do Projeto Análise de Requisitos CONSTRUÇÃO Projeto Codificação Teste SOFTWARE PRODUTO MANUTENÇÃO Entendimento Modificação Revalidação MANUTENÇÃO
Na Prática Espera-se que medido gerenciado controlado PROCESSO DE SOFTWARE eficiente definido
Modelos de Processo de Software Existem vários modelos de processo de software Cada um representa uma tentativa de colocar ordem em um conjunto de atividades complexas Pode-se citar os seguintes modelos de processo de software
Modelos de Processo de Software Modelo Seqüencial Linear (Modelo Cascata) Paradigma de Prototipação Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software Modelo Incremental Modelo Espiral Modelo de Montagem de Componentes Modelo de Desenvolvimento Concorrente Modelos de Métodos Formais Técnicas de Quarta Geração
Modelo Cascata Engenharia de de Sistemas Análise de de Requisitos Projeto Codificação Testes Manutenção
O Modelo Cascata modelo mais antigo requer uma abordagem sistemática, seqüencial ao desenvolvimento de software o resultado de uma fase se constitui na entrada da outra
Modelo Cascata Engenharia de de Sistemas Análise Engenharia de de de Sistemas Requisitos envolve a coleta de requisitos em nível do sistema, com análise Projeto de alto nível Codificação Testes Manutenção
Modelo Cascata Engenharia de de Sistemas Análise de de Requisitos Análise de Requisitos de Software o processo de coleta dos requisitos é intensificado e concentrado especificamente no software Projeto deve-se Codificação compreender o domínio da informação, a função, desempenho e interfaces Testes exigidos os requisitos (para o sistema e para o software) são documentados e revistos com o cliente Manutenção
Modelo Cascata Engenharia de de Sistemas Análise de de Requisitos Projeto Projeto tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie Codificação Estrutura de Dados Arquitetura Testes de Software Detalhes Procedimentais e Caracterização de Manutenção Interfaces
Modelo Cascata Engenharia de de Sistemas Codificação Análise de de tradução Requisitos das representações do projeto para uma linguagem artificial resultando em instruções executáveis pelo computador Projeto Codificação Testes Manutenção
Modelo Cascata Engenharia de de Sistemas Concentra-se: Testes Análise de de Requisitos nos aspectos lógicos internos do software garantia que todas as instruções tenham sido Projeto testadas nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados Codificação Testes Manutenção
Modelo Cascata Engenharia de de Sistemas Manutenção provavelmente o software deverá Análise de de Requisitos sofrer mudanças depois que for entregue ao cliente Projeto causas das mudanças: erros, adaptação do software para Codificação acomodar mudanças em seu ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho Testes Manutenção
Problemas com o Modelo Cascata Projetos reais raramente seguem o fluxo seqüencial que o modelo propõe Logo no início é difícil estabelecer explicitamente todos os requisitos no começo dos projetos sempre existe uma incerteza natural O cliente deve ter paciência uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento
Modelo Cascata Embora o Modelo Cascata tenha fragilidades, ele é significativamente melhor do que uma abordagem casual ao desenvolvimento de software.
Bibliografia PRESSMAN, ROGER S. Engenharia de Software. 5ª edição. Rio de Janeiro: McGraw-Hill, 2002. SOMERVILLE, IAN. Engenharia de Software. 6ª edição. São Paulo: Addison Wesley, 2003. 34