Engenharia de Software



Documentos relacionados
natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Tópicos. Engenharia de Software: Uma Visão Geral

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Características do Software

O Processo de Desenvolvimento de Software. Engenharia de Software

ENGENHARIA DE SOFTWARE II

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Engenharia de Software

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I Aula 3

O Produto e o Processo. Engenharia de Software Profa. Inês A.G.Boaventura 2. Semestre/2005

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

Introdução à Computação

Engenharia de Software

Engenharia de Software I. Prof. André Castro Garcia

ENGENHARIA DE SOFTWARE

Engenharia de Software II

O Processo. Engenharia de Software: Definição. Engenharia de Software: Definição. Engenharia de Software: Definição. Engenharia de Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

PROFESSOR: CRISTIANO MARIOTTI

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Pós Graduação Engenharia de Software

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Engenharia de Software

Especialização em Engenharia de Software e Banco de Dados

Processos de Desenvolvimento de Software

Sistemas de Informação I

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Introdução a Engenharia de Software. Alterações na aula do Prof. Reinaldo Bianchi Alterado por: Antonio Carlos Souza ADS - IFBA

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Engenharia de Requisitos

Análise e Projeto de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Engenharia de Software I Para que eu Preciso Saber Engenharia de Software?

Plano de projeto. Cronograma e Controle

Planejamento e Gerenciamento de Software. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

Professor: Curso: Disciplina:

Universidade Paulista

Introdução à ES - Continuação

Engenharia de Software

Gerenciamento de projetos.

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Modelos do Design de Software

ISO/IEC 12207: Gerência de Configuração

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

Unidade 1: O Produto Software e seus processos de criação

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software Processo de Desenvolvimento de Software

Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Sistemas de Informação I

Atividades da Engenharia de Software ATIVIDADES DE APOIO. Atividades da Engenharia de Software. Atividades da Engenharia de Software

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

CHECK - LIST - ISO 9001:2000

Engenharia de Software

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Universidade de Brasília Faculdade de Ciência da Informação Disciplina: Projeto de Implementação de Sistemas Arquivísticos Profa.

1. NÍVEL CONVENCIONAL DE MÁQUINA

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

CHECK LIST DE AVALIAÇÃO DE FORNECEDORES Divisão:

Gerência de Projetos

Princípios da Engenharia de Software aula 05 Gerenciamento de planejamento de projetos. Prof.: Franklin M. Correia

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Requisitos de Software

Engenharia de Requisitos

Introdução à Engenharia de Software

Tecnologia e Sistemas de Informações

GARANTIA DA QUALIDADE DE SOFTWARE

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Engenharia de Software

15 Computador, projeto e manufatura

Modelo Cascata ou Clássico

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

Processo de Desenvolvimento de Software

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

EVOLUÇÃO DE SOFTWARE

Processo de Software - Revisão

UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software

Transcrição:

CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br

Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um todo, coordenados entre si, e que formam estrutura organizada Sistemas Automatizados Usuários Software SISTEMA Hardware etfranca1-2 Dados Procedimentos

Software 1- INSTRUÇÕES que quando executadas produzem a função e o desempenho desejados 2 - ESTRUTURAS DE DADOS que possibilitam que os programas manipulem adequadamente a informação 3 - DOCUMENTOS que descrevem a operação e o uso dos programas etfranca1-3

Características do Software 1- desenvolvido ou projetado por engenharia 2- não se desgasta mas se deteriora 3- a maioria é feita sob medida em vez de ser montada a partir de componentes existentes 4-quando mais especializado o sistema, menor sua capacidade de adaptação a mudanças 5-quanto maior o sistema, mais recursos são necessários para sua manutenção etfranca1-4

Curva de falhas para o hardware índice de falhas mortalidade infantil desgaste tempo etfranca1-5

Curva de falhas do software mudança índice de falhas curva real curva idealizada tempo etfranca1-6

Aplicações do software BÁSICO coleção de programas escritos para dar apoio a outros programas DE TEMPO REAL software que monitora, analisa e controla eventos do mundo real COMERCIAL sistemas de operações comerciais e tomadas de decisões administrativas CIENTÍFICO E DE ENGENHARIA caracterizado por algoritmos de processamento de números etfranca1-7

Aplicações do software EMBUTIDO usado para controlar produtos e sistemas para os mercados industriais e de consumo DE COMPUTADOR PESSOAL envolve processamento de textos, planilhas eletrônicas, diversões, etc. DE INTELIGÊNCIA ARTIFICIAL faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta etfranca1-8

Evolução do software (1950-1965)! O hardware sofreu contínuas mudanças! O software era uma arte "secundária" para a qual havia poucos métodos sistemáticos! O hardware era de propósito geral! O software era específico para cada aplicação! Não havia documentação etfranca1-9

Evolução do software (1965-1975) " Multiprogramação e sistemas multiusuários " Técnicas interativas " Sistemas de tempo real " 1a. geração de SGBD s " Produto de software - software houses " Bibliotecas de Software " Cresce nro. de sistemas baseado em computador " Manutenção quase impossível etfranca1-10... CRISE DE SOFTWARE

Evolução do software (1975 - hoje) # Sistemas distribuídos # Redes locais e globais # Uso generalizado de microprocessadores - produtos inteligentes # Hardware de baixo custo # Impacto de consumo etfranca1-11

Evolução do software (Quarta era do software de computador) $ Tecnologia orientada o objetos $ Sistemas especialistas e software de inteligência artificial usados na prática $ Software de rede neural artificial $ Computação Paralela $...ooo... etfranca1-12

Crise de software Refere-se a um conjunto de problemas encontrados no desenvolvimento de software: 1- As estimativas de prazo e de custo freqüentemente são imprecisas Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software Sem nenhuma indicação sólida de produtividade, não podemos avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões etfranca1-13

Crise de software 2- A produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviços Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente etfranca1-14

Crise de software 3- A qualidade de software às vezes é menos que adequada Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software 4- O software existente é muito difícil de manter A tarefa de manutenção devora o orçamento destinado ao software A facilidade de manutenção não foi enfatizada como um critério importante etfranca1-15

Crise de software $ estimativas de prazo e de custo $ produtividade das pessoas $ qualidade de software $ software difícil de manter etfranca1-16

Causas dos problemas associados à crise de software 1- PRÓPRIO CARÁTER DO SOFTWARE O software é um elemento de sistema lógico e não físico. Conseqüentemente o sucesso é medido pela qualidade de uma única entidade e não pela qualidade de muitas entidades manufaturadas O software não se desgasta, mas se deteriora etfranca1-17

Causas dos problemas associados à crise de software 2- FALHAS DAS PESSOAS RESPONSÁVEIS PELO DESENVOLVIMENTO DE SOFTWARE Gerentes sem nenhum background em software Os profissionais da área de software têm recebido pouco treinamento formal em novas técnicas para o desenvolvimento de software Resistência a mudanças. etfranca1-18

Causas dos problemas associados à crise de software 3- MITOS DO SOFTWARE Propagaram desinformação e confusão 4administrativos 4cliente 4profissional 4tecnologia etfranca1-19

uma visão genérica O processo de desenvolvimento de software contém 3 fases genéricas, independentes do modelo de engenharia de software escolhido: % DEFINIÇÃO, % DESENVOLVIMENTO e % MANUTENÇÃO. etfranca1-20

uma visão genérica FASE DE DEFINIÇÃO: o o que será desenvolvido. & Análise do Sistema: define o papel de cada elemento num sistema baseado em computador, atribuindo em última análise, o papel que o software desempenhará. & Planejamento do Projeto de Software: assim que o escopo do software é estabelecido, os riscos são analisados, os recursos são alocados, os custos são estimados e, tarefas e programação de trabalho definidas. & Análise de Requisitos: o escopo definido para o software proporciona uma direção, mas uma definição detalhada do domínio da informação e da função do software é necessária antes que o trabalho inicie. etfranca1-21

uma visão genérica DESENVOLVIMENTO: como o software vai ser desenvolvido. & Projeto de Software: traduz os requisitos do software num conjunto de representações (algumas gráficas, outras tabulares ou baseadas em linguagem) que descrevem a estrutura de dados, a arquitetura do software, os procedimentos algorítmicos e as características de interface. & Codificação: as representações do projeto devem ser convertidas numa linguagem artificial (a linguagem pode ser uma linguagem de programação convencional ou uma linguagem não procedimental) que resulte em instruções que possam ser executadas pelo computador. & Realização de Testes do Software: logo que o software é implementado numa forma executável por máquina, ele deve ser testado para que se possa descobrir defeitos de função, lógica e implementação. etfranca1-22

uma visão genérica FASE DE MANUTENÇÃO: concentra-se nas mudanças que ocorrerão depois que o software for liberado para uso operacional # Correção # Adaptação # Melhoramento Funcional etfranca1-23

uma visão genérica Correção: mesmo com as melhores atividades de garantia de qualidade de software, é provável que o cliente descubra defeitos no software. A manutenção corretiva muda o software para corrigir defeitos. Adaptação: com o passar do tempo, o ambiente original (por exemplo a CPU, o sistema operacional e periféricos) para o qual o software foi desenvolvido provavelmente mudará. A manutenção adaptativa muda o software para acomodar mudanças em seu ambiente. etfranca1-24

uma visão genérica Melhoramento Funcional: a medida que o software é usado, o cliente/usuário reconhecerá funções adicionais que oferecerão benefícios. A manutenção perfectiva estende o software para além de suas exigências funcionais originais. etfranca1-25

uma visão genérica ATIVIDADES DE PROTEÇÃO as fases e etapas correlatas descritas são complementadas por uma série de atividades de proteção. Revisões: efetuadas para garantir que a qualidade seja mantida à medida que cada etapa é concluída. Documentação: é desenvolvida e controlada para garantir que informações completas sobre o software estejam disponíveis para uso posterior. Controle das Mudanças: é instituído de forma que as mudanças possam ser aprovadas e acompanhadas. etfranca1-26

Estabelece uso de princípios sólidos de engenharia, com o intuito de obter, economicamente, software que seja confiável e funcione eficientemente em máquinas reais Fratz Bauer, 1969 Métodos Ferramentas Produtividade etfranca1-27 Pessoas

abrange um conjunto de três elementos fundamentais: Métodos, Ferramentas e Procedimentos MÉTODOS: proporcionam os detalhes de como fazer para construir o software etfranca1-28

' Planejamento e estimativa de projeto ' Análise de requisitos de software e de sistemas ' Projeto da estrutura de dados ' Algoritmo de processamento ' Codificação ' Teste ' Manutenção etfranca1-29

FERRAMENTAS: dão suporte automatizado aos métodos. ( Existem atualmente ferramentas para sustentar cada um dos métodos ( Quando as ferramentas são integradas é estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE - Computer Aided Software Engineering etfranca1-30

PROCEDIMENTOS: constituem o elo de ligação entre os métodos e ferramentas # Seqüência em que os métodos serão aplicados # Produtos que se exige que sejam entregues # Controles que ajudam assegurar a qualidade e coordenar as alterações # Marcos de referência que possibilitam administrar o progresso do software. etfranca1-31

Conjunto de etapas que envolve MÉTODOS FERRAMENTAS e PROCEDIMENTOS. MÉTODOS, ' Essas etapas são conhecidas como componentes de CICLOS DE VIDA DE SOFTWARE ' Alguns ciclos de vida mais conhecidos são: Ciclo de Vida Clássico, Prototipação, Modelo Espiral e Técnicas de 4 a Geração etfranca1-32

Para escolha de um Ciclo de Vida de software: # natureza do projeto e da aplicação # métodos e ferramentas a serem usados # controles e produtos que precisam ser entregues etfranca1-33

Ciclo de Vida Clássico (Cascata) ) modelo mais antigo e o mais amplamente usado da engenharia de software ) modelado em função do ciclo da engenharia convencional ) requer uma abordagem sistemática, seqüencial ao desenvolvimento de software etfranca1-34

Cascata Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção etfranca1-35

Atividades do Ciclo de Vida Clássico 1- ANÁLISE E ENGENHARIA DE SISTEMAS ) envolve a coleta de requisitos em nível do sistema, com uma pequena quantidade de projeto e análise de alto nível ) esta visão é essencial quando o software deve fazer interface com outros elementos (hardware, pessoas e banco de dados) etfranca1-36

Atividades do Ciclo de Vida Clássico 2- 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 etfranca1-37

Atividades do Ciclo de Vida Clássico 3- 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 ) se concentra em 4 atributos do programa: etfranca1-38 ) Estrutura de Dados, ) Arquitetura de Software, ) Detalhes Procedimentais e ) Caracterização de Interfaces

Atividades do Ciclo de Vida Clássico 4- CODIFICAÇÃO ) tradução das representações do projeto para uma linguagem artificial resultando em instruções executáveis pelo computador etfranca1-39

Atividades do Ciclo de Vida Clássico 5- TESTES Concentra-se: ) nos aspectos lógicos internos do software, garantindo 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. etfranca1-40

Atividades do Ciclo de Vida Clássico 6- 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 etfranca1-41

Problemas com o Ciclo de Vida Clássico * 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 etfranca1-42

$ Embora o Ciclo de Vida Clássico tenha fragilidades, ele é significativamente melhor do que uma abordagem casual ao desenvolvimento de software etfranca1-43

Prototipação " processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construído. " idealmente, o modelo (protótipo) serve como um mecanismo para identificar os requisitos de software. " apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes. etfranca1-44

Prototipação início fim construção produto obtenção dos requisitos projeto rápido refinamento protótipo avaliação protótipo construção protótipo etfranca1-45

Atividades da Prototipação 1- OBTENÇÃO DOS REQUISITOS: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais. 2- PROJETO RÁPIDO: representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída) 3- CONSTRUÇÃO PROTÓTIPO: projeto rápido etfranca1-46 implementação do 4- AVALIAÇÃO DO PROTÓTIPO: cliente e desenvolvedor avaliam o protótipo

Atividades da Prototipação 5- REFINAMENTO DOS REQUISITOS: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido. Ocorre neste ponto um processo de iteração que pode conduzir a atividade 1 até que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito. 6- CONSTRUÇÃO PRODUTO: identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída considerando os critérios de qualidade. etfranca1-47

Problemas com a Prototipação *cliente não sabe que o software que ele vê não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo. Não aceita bem a idéia que a versão final do software vai ser construída e "força" a utilização do protótipo como produto final *desenvolvedor freqüentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo. Depois de um tempo ele familiariza com essas escolhas, e esquece que elas não são apropriadas para o produto final. etfranca1-48

Prototipação $ainda que possam ocorrer problemas, a prototipação é um ciclo de vida eficiente. $a chave é definir-se as regras do jogo logo no começo. $o cliente e o desenvolvedor devem ambos concordar que o protótipo seja construído para servir como um mecanismo a fim de definir os requisitos. etfranca1-49

Ciclo de Vida em Espiral engloba as melhores características do ciclo de vida Clássico e da Prototipação, adicionando um novo elemento: a Análise de Risco segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos etfranca1-50

Espiral planejamento análise dos riscos decisão de continuar ou não avaliação do cliente engenharia na direção de um sistema concluído etfranca1-51

Espiral etfranca1-52

Atividades do Ciclo de Vida em Espiral 1- PLANEJAMENTO: determinação dos objetivos, alternativas e restrições 2- ANÁLISE DE RISCO: análise das alternativas e identificação / resolução dos riscos 3- CONSTRUÇÃO: desenvolvimento do produto no nível seguinte 4- AVALIAÇÃO DO CLIENTE: avaliação do produto e planejamento das novas fases etfranca1-53

Ciclo de Vida em Espiral + é, atualmente, a abordagem mais realística para o desenvolvimento de software em grande escala. + usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva. + pode ser difícil convencer os clientes que uma abordagem "evolutiva" é controlável + exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso etfranca1-54

Ciclo de Vida em Espiral! o modelo é relativamente novo e não tem sido amplamente usado. Demorará muitos anos até que a eficácia desse modelo possa ser determinada com certeza absoluta. etfranca1-55

Técnicas de 4 a Geração Concentra-se na capacidade de se especificar o software a uma máquina em um nível que esteja próximo à linguagem natural. Engloba um conjunto de ferramentas de software que possibilitam que: ( o sistema seja especificado em uma linguagem de alto nível e ( o código fonte seja gerado automaticamente a partir dessas especificações etfranca1-56

4 a Geração Obtenção dos Requisitos Estratégia do Projeto Implementação usando 4GL Testes etfranca1-57

Ferramentas do ambiente de desenvolvimento de software de 4 a Geração O ambiente de desenvolvimento de software que sustenta o ciclo de vida de 4 a geração inclui as ferramentas: $ linguagens não procedimentais para consulta de banco de dados $ geração de relatórios $ manipulação de dados $ interação e definição de telas $ geração de códigos $ capacidade gráfica de alto nível $ capacidade de planilhas eletrônicas etfranca1-58

Atividades das Técnicas de 4 a Geração 1- OBTENÇÃO DOS REQUISITOS: o cliente descreve os requisitos os quais são traduzidos para um protótipo operacional * o cliente pode estar inseguro quanto aos requisitos * o cliente pode ser incapaz de especificar as informações de um modo que uma ferramenta 4GL possa consumir * as 4GLs atuais não são sofisticadas suficientemente para acomodar a verdadeira "linguagem natural" etfranca1-59

Atividades das Técnicas de 4 a Geração 2- ESTRATÉGIA DE "PROJETO": para pequenas aplicações é possível mover-se do passo de Obtenção dos Requisitos para o passo de Implementação usando uma linguagem de quarta geração Para grandes projetos é necessário desenvolver uma estratégia de projeto. De outro modo ocorrerão os mesmos problemas encontrados quando se usa abordagem convencional (baixa qualidade) etfranca1-60

Atividades das Técnicas de 4 a Geração 3- IMPLEMENTAÇÃO USANDO 4GL: os resultados desejados são representados de modo que haja geração automática de código. Deve existir uma estrutura de dados com informações relevantes e que seja acessível pela 4GL 4- TESTE: o desenvolvedor deve efetuar testes e desenvolver uma documentação significativa. O software desenvolvido deve ser construído de maneira que a manutenção possa ser efetuada prontamente. etfranca1-61

Técnicas de 4 a Geração PROPONENTES: redução dramática no tempo de desenvolvimento do software (aumento de produtividade) OPONENTES: as 4GL atuais não são mais fáceis de usar do que as linguagens de programação ( o código fonte produzido é ineficiente ( a manutenibilidade de sistemas usando técnicas 4G ainda é questionável etfranca1-62

Mudança na natureza de desenvolvimento de software demanda global demanda por software aplicação de técnicas de 4 a Geração métodos convencionais 1970 1980 1990 2000 etfranca1-63

Combinação dos Métodos de Ciclo de Vida obtenção dos requisitos preliminares análise dos requisitos protomodelagem técnicas 4G modelo espiral projeto protomodelagem no. interação técnicas 4G codificação protomodelagem no. interação modelo espiral no. interação testes sistema completo etfranca1-64 manutenção

Conclusão ENGENHARIA DE SOFTWARE pode ser vista como uma abordagem de desenvolvimento de software elaborada com disciplina e métodos bem definidos.... a construção por múltiplas pessoas de um software de múltiplas versões [Parnas 1987] etfranca1-65