Engenharia de Software Slide 05 – Modelos de Processos Juliano Amorim de Oliveira juliano.oliveira@gmail.com Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas
Retomando a aula passada… Características do software Evolução do sofware Crise do software Mitos do software
Por que surgiu a Engenharia de Software?
Resposta à Crise de Software Engenharia 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 MANUTENÇÃO SOFTWARE PRODUTO
Fases Genéricas dos Modelos de Processo de Software “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 DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO
Fases Genéricas dos Modelos de Processo de Software Análise de Sistema Planejamento do Projeto Análise de Requisitos DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO
Fases Genéricas dos Modelos de Processo de Software “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. DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO
Fases Genéricas dos Modelos de Processo de Software Análise de Sistema Planejamento do Projeto Análise de Requisitos DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Projeto Codificação Teste
Fases Genéricas dos Modelos de Processo de Software “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. DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO
Fases Genéricas dos Modelos de Processo de Software Análise de Sistema Planejamento do Projeto Análise de Requisitos DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Projeto Codificação Teste Entendimento Modificação Revalidação
Fases Genéricas dos Modelos de Processo de Software DESENVOLVIMENTO Análise de Sistema Planejamento do Projeto Análise de Requisitos DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Projeto Codificação Teste Entendimento Modificação Revalidação
Fases Genéricas dos Modelos de Processo de Software Análise de Sistema Planejamento do Projeto Análise de Requisitos DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Projeto Codificação Teste OPERAÇÃO Entendimento Modificação Revalidação
Fases Genéricas dos Modelos de Processo de Software Análise de Sistema Planejamento do Projeto Análise de Requisitos DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Projeto Codificação Teste Entendimento Modificação Revalidação MANUTENÇÃO
Na Prática Espera-se que… controlado eficiente medido PROCESSO DE SOFTWARE gerenciado 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 Sistemas Análise 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 Sistemas Engenharia de Sistemas envolve a coleta de requisitos em nível do sistema, com análise de alto nível Análise de Requisitos Projeto Codificação Testes Manutenção
Análise de Requisitos de Software Modelo Cascata Análise de Requisitos Análise de Requisitos de Software o processo de coleta dos requisitos é intensificado e concentrado especificamente no software deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos os requisitos (para o sistema e para o software) são documentados e revistos com o cliente Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção
Modelo Cascata 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 Estrutura de Dados Arquitetura de Software Detalhes Procedimentais e Caracterização de Interfaces Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção
Modelo Cascata Engenharia de Sistemas Codificação tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador Análise de Requisitos Projeto Codificação Testes Manutenção
Modelo Cascata Concentra-se: Testes Concentra-se: nos aspectos lógicos internos do software garantia que todas as instruções tenham sido testadas nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção
Modelo Cascata Manutenção provavelmente o software deverá sofrer mudanças depois que for entregue ao cliente causas das mudanças: erros, adaptação do software para acomodar mudanças em seu ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho Engenharia de Sistemas Análise de Requisitos Projeto Codificação 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.