engenharia de software slide 05 – modelos de processos instituto metodista isabela hendrix curso...
TRANSCRIPT
Engenharia de Software
Slide 05 – Modelos de Processos
Instituto Metodista Isabela HendrixCurso de Análise e Desenvolvimento de Sistemas
Juliano Amorim de [email protected]
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
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
Uma Tecnologia em CamadasUma Tecnologia em Camadas
ferramentasferramentasmétodosmétodosprocessoprocesso
foco na qualidadefoco na qualidade
Engenharia de Software
Uma Tecnologia em CamadasUma Tecnologia em Camadas
ferramentasferramentasmétodosmétodosprocessoprocesso
foco na qualidadefoco na qualidade
É o “solo”É o “solo”A Engenharia de Software deve se apoiar num compromisso A Engenharia de Software deve se apoiar num compromisso organizacional com a qualidade. organizacional com a qualidade.
Engenharia de Software
ferramentasferramentasmétodosmétodosprocessoprocesso
foco na qualidadefoco na qualidade
É o “alicerce”É o “alicerce”É a cola que gruda as camadas de tecnologias e permite um É a cola que gruda as camadas de tecnologias e permite um desenvolvimento de software racional e em tempo; desenvolvimento de software racional e em tempo;
Uma Tecnologia em CamadasUma Tecnologia em Camadas
Engenharia de Software
ferramentasferramentasmétodosmétodosprocessoprocesso
foco na qualidadefoco na qualidade
É o “como fazer”É o “como fazer”Englobam um conjunto de tarefas que inclui análise de Englobam um conjunto de tarefas que inclui análise de requisitos, projeto, construção de programas, teste e requisitos, projeto, construção de programas, teste e manutençãomanutenção
Uma Tecnologia em CamadasUma Tecnologia em Camadas
Engenharia de Software
ferramentasferramentasmétodosmétodosprocessoprocesso
foco na qualidadefoco na qualidade
É o “instrumento apropriado”É o “instrumento apropriado”Dão suporte automatizado ou semi-automatizado ao processo Dão suporte automatizado ou semi-automatizado ao processo e aos métodos; quando as ferramenta se integram tem-se um e aos métodos; quando as ferramenta se integram tem-se um sistema denominado CASE (Computer Aided Software sistema denominado CASE (Computer Aided Software Engineering)Engineering)
Uma Tecnologia em CamadasUma Tecnologia em Camadas
Engenharia de Software
Vamos falar um pouco dos processos de software!
(ou modelos de processo de software)
Fases Genéricas dos Modelos de Processo de Software
DEFINIÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
DEFINIÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
““o que”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ÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
Análise de SistemaPlanejamento do Projeto
Análise de Requisitos
Fases Genéricas dos Modelos de Processo de Software
DEFINIÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
““como”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ÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
Projeto Codificação
Teste
Análise de SistemaPlanejamento do Projeto
Análise de Requisitos
Fases Genéricas dos Modelos de Processo de Software
DEFINIÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
““mudanças”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ÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
Entendimento Modificação
Revalidação
Projeto Codificação
Teste
Análise de SistemaPlanejamento do Projeto
Análise de Requisitos
Fases Genéricas dos Modelos de Processo de Software
DEFINIÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
Entendimento Modificação
Revalidação
Projeto Codificação
Teste
Análise de SistemaPlanejamento do Projeto
Análise de Requisitos
DESENVOLVIMENTO
Fases Genéricas dos Modelos de Processo de Software
DEFINIÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
Entendimento Modificação
Revalidação
Projeto Codificação
Teste
Análise de SistemaPlanejamento do Projeto
Análise de Requisitos
OPERAÇÃO
Fases Genéricas dos Modelos de Processo de Software
DEFINIÇÃODEFINIÇÃO
CONSTRUÇÃOCONSTRUÇÃO
MANUTENÇÃOMANUTENÇÃO
SOFTWARE PRODUTOSOFTWARE PRODUTO
Entendimento Modificação
Revalidação
Projeto Codificação
Teste
Análise de SistemaPlanejamento do Projeto
Análise de Requisitos
MANUTENÇÃO
Fases Genéricas dos Modelos de Processo de Software
Na Prática Espera-se que…
PROCESSO DE PROCESSO DE SOFTWARESOFTWARE
eficientecontrolado
definido
medido
gerenciado
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 modelos de processo de softwareprocesso 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 CascataEngenharia 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 CascataEngenharia de Sistemas
Análise de Requisitos
Projeto
Codificação
Testes
Manutenção
Engenharia de Sistemas
Engenharia de Sistemas envolve a coleta de requisitos em nível do sistema, com análise de alto nível
Modelo CascataEngenharia de Sistemas
Análise de Requisitos
Projeto
Codificação
Testes
Manutenção
Análise de Requisitos
Análise de Requisitos de Software
o processo de coleta dos requisitos é intensificado e concentrado especificamente no softwaredeve-se compreender o domínio da informação, a função, desempenho e interfaces exigidosos requisitos (para o sistema e para o software) são documentados e revistos com o cliente
Modelo CascataEngenharia de Sistemas
Análise de Requisitos
Projeto
Codificação
Testes
Manutenção
Projeto
ProjetoProjetotraduçã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 DadosArquitetura de SoftwareDetalhes Procedimentais e Caracterização de Interfaces
Modelo CascataEngenharia de Sistemas
Análise de Requisitos
Projeto
Codificação
Testes
Manutenção
Codificação
CodificaçãoCodificação tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador
Modelo CascataEngenharia de Sistemas
Análise de Requisitos
Projeto
Codificação
Testes
Manutenção
Testes
TestesTestes 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
Modelo CascataEngenharia de Sistemas
Análise de Requisitos
Projeto
Codificação
Testes
Manutenção Manutenção
ManutençãoManutençã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
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 CascataModelo Cascata tenha fragilidades, ele é
significativamente melhor do que uma abordagem
casual ao desenvolvimento de software.
35
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.