Engenharia de Software Unidade VI 1 VS1-Mar/2005 Engenharia de Software INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software HISTÓRICO Os fundamentos científicos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantido suas qualidades. Além disto, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento. 2 VS1-Mar/2005 A Engenharia de Software (ES) surgiu em meados dos anos 70 numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemático e controlado) ao desenvolvimento de sistemas de software complexos. Um sistema de software complexo se caracteriza por um conjunto de componentes abstratos de software (estruturas de dados e algoritmos) encapsulados na forma de procedimentos, funções, módulos, objetos ou agentes e interconectados entre si, compondo a arquitetura do software, que deverão ser executados em sistemas computacionais. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software MITOS E REALIDADES 3 VS1-Mar/2005 MITOS ADMINISTRATIVOS Mito: Já temos um manual repleto de padrões e procedimentos para a construção de software. Isso não oferecerá ao meu pessoal tudo o que eles precisam saber? Realidade: O manual de padrões pode muito bem existir, mas será que é usado? Os profissionais de software têm conhecimento de sua existência? Ele reflete a moderna prática de desenvolvimento de software? É completo? Em muitos casos a respostas a todas estas perguntas é não. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software MITOS E REALIDADES . . . 4 VS1-Mar/2005 MITOS DO CLIENTE Mito: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas – podemos preencher os detalhes mais tarde. Realidade: Uma definição inicial ruim é a principal causa dos fracassos dos esforços de desenvolvimento de software. Uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação é fundamental. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software MITOS E REALIDADES . . . 5 VS1-Mar/2005 MITOS DO CLIENTE . . . Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível. Realidade: É verdade que os requisitos de software se modificam, mas o impacto da mudança varia de acordo com o tempo em que ela é introduzida. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software MITOS E REALIDADES . . . 6 VS1-Mar/2005 MITOS DO PROFISSIONAL Mito: Enquanto o programa não estiver funcionando não existirá maneira de avaliar sua qualidade. Realidade: A revisão técnica formal pode ser aplicada desde o começo de um projeto. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software MITOS E REALIDADES . . . 7 VS1-Mar/2005 MITOS DO PROFISSIONAL . . . Mito: A única coisa a ser entregue em um projeto bem sucedido é o programa funcionando. Realidade: O programa funcionando é apenas uma parte de uma configuração de software. A documentação (plano, especificação de requisitos, estrutura de dados, especificação de teste, etc.) fornece um guia para facilitar a manutenção de software. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DA ENGENHARIA DE SOFTWARE Não existe uma abordagem em particular que seja a melhor solução para o desenvolvimento de software, no entanto: a combinação de métodos abrangentes para todas as fases de desenvolvimento; a utilização de ferramentas para automatizar esses métodos; a criação de blocos de construção mais consistentes; a aplicação das melhores técnicas de qualidade; e, a filosofia de coordenação, controle e administração; 8 VS1-Mar/2005 darão o encaminhamento software. das bases da engenharia INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx de Engenharia de Software EVOLUÇÃO DO SOFTWARE Os primeiros anos: A segunda era: • orientação batch • distribuição limitada • software customizado 9 VS1-Mar/2005 1960 A quarta era: • multiusuário • sistemas distribuídos • tempo real • “inteligência” embutida • bancos de dados • hardware de baixo custo • produto de software • impacto de consumo • software house 1950 A terceira era: 1970 • microprocessadores e computadores pessoais 1980 • sistemas de desk-top poderosos • tecnologias orientadas a objeto • sistemas especialistas • computação paralela 1990 INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx 2000 Engenharia de Software EVOLUÇÃO DO SOFTWARE . . . OS PRIMEIROS ANOS: software projetado sob medida para cada aplicação; software com distribuição relativamente limitada; o produto software estava em sua infância; a maior parte dos softwares era desenvolvida e usada pela própria empresa; quem escrevia e colocava em funcionamento, também tratava dos defeitos; e, 10 VS1-Mar/2005 por causa do ambiente de software personalizado, o projeto era um processo implícito, realizado no cérebro de alguém, e a documentação muitas vezes não existia. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software EVOLUÇÃO DO SOFTWARE . . . A SEGUNDA ERA: multiprogramação e sistemas multiusuários introduziram novos conceitos na interação homem-máquina; as técnicas interativas abriram um novo mundo de aplicações e novos níveis de sofisticação de software e hardware; sistemas de tempo real podiam coletar, transformar dados de múltiplas fontes; analisar e os avanços da armazenagem online levaram à primeira geração de sistemas de gerenciamento de banco de dados; e, 11 VS1-Mar/2005 surgimento das “software houses”. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software EVOLUÇÃO DO SOFTWARE . . . A TERCEIRA ERA: os sistemas distribuídos - múltiplos computadores, cada um executando funções concorrentemente e comunicando-se um com o outro – aumentaram a complexidade dos sistemas baseados em computador; as redes globais e locais, as comunicações digitais e a crescente demanda de acesso “instantâneo” a dados exigem muito dos desenvolvedores de software; uso generalizado de microprocessadores e computadores pessoais; e, 12 VS1-Mar/2005 produtos inteligentes: de automóveis a forno de microondas, de robôs industriais a diagnóstico de soro sangüíneo. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software EVOLUÇÃO DO SOFTWARE . . . A QUARTA ERA: tecnologias orientadas a objetos; técnicas de quarta geração; sistemas especialistas; inteligência artificial; e, 13 VS1-Mar/2005 software de rede neural artificial abrindo possibilidades para o reconhecimento de padrões e para capacidades de processamento de informações semelhantes às humanas. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software EVOLUÇÃO DO SOFTWARE . . . A QUINTA ERA (?): a sofisticação do software ultrapassou nossa capacidade de construir um software que extraia o potencial do hardware; a capacidade de construir programas não acompanha o ritmo da demanda de novos programas; a capacidade de manter os programas existentes é ameaçada por projetos ruins e recursos inadequados; e, 14 VS1-Mar/2005 as práticas de engenharia de software se fortalecem. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software Por que demora tanto tempo para que os programas sejam concluídos? Por que os custos são tão elevados? Por que não descobrimos todos os erros antes de entregarmos o software aos nossos clientes? Por que temos dificuldade em medir o progresso enquanto o software está sendo desenvolvido? Essas e muitas outras perguntas são uma manifestação da preocupação relativa ao software e à maneira pela qual ele é desenvolvido, fortalecendo as práticas de engenharia de software. 15 VS1-Mar/2005 PERSPECTIVA INDUSTRIAL INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE O processo de desenvolvimento de software contém três fases genéricas independente do paradigma de software escolhido. São elas: definição; o quê? desenvolvimento; e, como? manutenção. 16 VS1-Mar/2005 mudanças (o quê? e como?) INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . DEFINIÇÃO 17 VS1-Mar/2005 A fase de definição focaliza o quê. Ou seja, durante a fase de definição, o desenvolvedor de software tenta identificar quais informações têm de ser processadas, qual função e desempenho são desejados, quais interfaces devem ser estabelecidas, quais restrições de projeto existem e quais critérios de validação são exigidos para se definir um sistema bem-sucedido. Esta fase apresenta as seguintes etapas: análise de sistema; planejamento do projeto de software; e, análise de requisitos. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . DEFINIÇÃO . . . Análise de sistema define o papel de cada elemento num sistema baseado em computador, atribuindo o papel que o software desempenhará. Planejamento do projeto de software 18 VS1-Mar/2005 uma vez definido o escopo do software, os riscos são analisados, as atividades e os recursos são definidos, os prazos são estabelecidos e os custos são estimados. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . DEFINIÇÃO . . . Análise de requisitos 19 VS1-Mar/2005 definição detalhada do domínio da informação e da função do software. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . DESENVOLVIMENTO 20 VS1-Mar/2005 A fase de desenvolvimento focaliza o como. Ou seja, o desenvolvedor de software tenta definir como a estrutura de dados e a arquitetura de software têm de ser projetadas, como os detalhes procedimentais têm de ser implementados, como projeto será traduzido numa linguagem de programação e como os testes têm de ser realizados. Esta fase apresenta as seguintes etapas: projeto de software; codificação; e, realização de testes de software. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . DESENVOLVIMENTO . . . Projeto de software traduz os requisitos do software num conjunto de representações que descrevem a estrutura de dados, a arquitetura, o procedimento algorítmico e as características de interface. as representações do projeto devem ser convertidas numa linguagem de programação convencional ou numa linguagem não-procedimental usada no contexto do paradigma 4GT (técnicas de quarta geração). 21 VS1-Mar/2005 Codificação INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . DESENVOLVIMENTO . . . Realização de testes do software 22 VS1-Mar/2005 O software deve ser testado para que se possa descobrir defeitos de função, de lógica e de implementação. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . MANUTENÇÃO 23 VS1-Mar/2005 A fase de manutenção concentra-se nas mudanças que estão associadas à correção de erros, adaptações exigidas à medida que o ambiente do software evolui e ampliações produzidas por exigências variáveis do cliente. Esta fase apresenta as seguintes etapas: correção; adaptação; e, melhoramento funcional. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . MANUTENÇÃO Correção A manutenção corretiva muda o software para corrigir defeitos. Adaptação 24 VS1-Mar/2005 A manutenção adaptativa resulta em modificações no software a fim de acomodar mudanças em seu ambiente. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . MANUTENÇÃO Melhoramento funcional 25 VS1-Mar/2005 O melhoramento funcional estende o software para além de suas exigências funcionais originais. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software VISÃO GERAL DA ENGENHARIA DE SOFTWARE . . . As fases apresentadas são completadas por uma série de atividades de proteção, conforme a seguir: revisões (qualidade); documentação; e, 26 VS1-Mar/2005 controle de mudanças. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE CICLO DE VIDA CLÁSSICO (modelo cascata) 27 VS1-Mar/2005 Também conhecido como modelo cascata, o paradigma do ciclo de vida clássico requer uma abordagem sistemática, seqüencial ao desenvolvimento de software, conforme figura a seguir: INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . Engenharia de Sistemas Ciclo de vida clássico – Análise modelo cascata Projeto Codificação Teste 28 VS1-Mar/2005 Manutenção INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . CICLO DE VIDA CLÁSSICO (modelo cascata) . . . engenharia de sistemas; análise de requisitos de software; projeto; codificação; teste; e, 29 VS1-Mar/2005 manutenção. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . CICLO DE VIDA CLÁSSICO (modelo cascata) . . . Engenharia de sistemas Coletar os requisitos em nível de sistema, com uma pequena quantidade de projeto e análise de alto nível. Análise de requisitos de software 30 VS1-Mar/2005 Compreender o domínio da informação para o software, bem como a função, desempenho e interface exigidos. Os requisitos, tanto para o sistema como para o software, são documentados e revistos com o cliente. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . CICLO DE VIDA CLÁSSICO (modelo cascata) . . . Projeto Gerar os quatro atributos distintos do programa: estrutura de dados, arquitetura de software, detalhes procedimentais e caracterização de interface. O projeto é documentado e torna-se parte da configuração do software. Codificação 31 VS1-Mar/2005 Traduzir o projeto numa forma legível por máquina. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . CICLO DE VIDA CLÁSSICO (modelo cascata) . . . Testes Realizar testes para descobrir erros técnicos e funcionais, buscando fazer com que a entrada definida produza resultados reais compatíveis com os resultados exigidos. Manutenção 32 VS1-Mar/2005 Reaplicar cada uma das etapas precedentes do ciclo de vida a um programa existente, sempre que ocorrerem mudanças (correções, adaptações ou melhoramentos). INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . CICLO DE VIDA CLÁSSICO (modelo cascata) . . . O modelo cascata é o paradigma mais antigo e o mais amplamente usado na engenharia de software. No entanto, os seguintes aspectos devem ser considerados: raramente seguem o fluxo seqüencial que o modelo propõe; necessidade de iterações aplicação do paradigma; trazem problemas para erros descobertos tardiamente, podem ser desastrosos ao projeto. 33 VS1-Mar/2005 dificuldade de acomodar a incerteza natural que existe no começo de muitos projetos; INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . PROTOTIPAÇÃO Processo que capacita o desenvolvedor a criar um modelo do software que será implementado. Pode assumir uma das três formas: protótipo em papel ou modelo baseado em PC; protótipo de trabalho; e, 34 VS1-Mar/2005 programa existente. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . PROTOTIPAÇÃO . . . Protótipo em papel ou modelo baseado em PC Retrata a interação homem-máquina de uma forma que capacita o usuário a entender quanta interação ocorrerá. Protótipo de trabalho Implementa algum subconjunto da função exigida do software desejado. Programa existente 35 VS1-Mar/2005 Executa parte ou toda a função desejada, mas tem outras características que serão melhoradas em um novo esforço de desenvolvimento. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . PROTOTIPAÇÃO . . . Início Fim Seqüência de eventos do paradigma de prototipação Avaliação do protótipo pelo cliente 36 VS1-Mar/2005 Coleta e refinamento dos requisitos INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . PROTOTIPAÇÃO . . . 37 VS1-Mar/2005 Ainda que possam ocorrer problemas, a prototipação é um paradigma eficiente da engenharia de software. A chave é definir-se as regras do jogo logo no começo; ou seja, o cliente e o desenvolvedor devem concordar que o protótipo seja construído para servir como um mecanismo de definição dos requisitos. Ele depois será descartado (pelo menos em parte) e o software real será projetado, levandose em conta a qualidade e a manutenção. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . MODELO ESPIRAL Desenvolvido para abranger as melhores características tanto do ciclo clássico como da prototipação, acrescentando, ao mesmo tempo, um novo elemento – a análise de riscos – que falta a esses paradigmas. Coleta inicial dos requisitos e planejamento do projeto Análise dos riscos baseada nos requisitos iniciais Análise dos riscos Planejamento Análise dos riscos baseada na reação do cliente Planejamento baseado nos comentários do cliente Decisão de prosseguir / não prosseguir Na direção de um sistema concluído Avaliação do cliente Protótipo do software inicial Protótipo no nível seguinte 38 VS1-Mar/2005 Avaliação do cliente Engenharia Sistema construído pela engenharia INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . MODELO ESPIRAL . . . O modelo representado pela espiral importantes atividades representadas quadrantes da figura: define pelos planejamento; análise dos riscos; engenharia; e, 39 VS1-Mar/2005 avaliação do cliente. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx quatro quatro Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . MODELO ESPIRAL . . . Planejamento Mistura análise com projeto. Nesta fase determina-se os objetivos, restrições e verifica-se alternativas de projeto. Análise de risco Nesta fase analisa-se as alternativas e verifica-se os riscos. Decide-se seguir o projeto na mesma linha ou começar de novo. Engenharia Nesta fase desenvolve-se o protótipo. A cada nova fase de engenharia o produto aproxima-se mais do produto final. Esta fase pode incluir todo o ciclo de vida clássico. O cliente avalia o produto. Os desenvolvedores verificam a necessidade de novas fases. 40 VS1-Mar/2005 Avaliação do cliente INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . MODELO ESPIRAL . . . O cliente avalia o trabalho de engenharia (o quadrante de avaliação do cliente) e apresenta sugestões para modificações. Na maioria dos casos, o fluxo ocorre ao redor de uma trajetória espiral contínua, com cada trajetória movimentando os desenvolvedores para fora na direção de um modelo mais completo do sistema. 41 VS1-Mar/2005 O paradigma de modelo espiral para a engenharia de software é atualmente a abordagem mais apropriada para o desenvolvimento de sistemas e de software em grande escala. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . TÉCNICAS DE QUARTA GERAÇÃO 42 VS1-Mar/2005 O termo Técnicas de Quarta Geração abrange um amplo conjunto de ferramentas de software que têm uma coisa em comum: cada uma delas possibilita que o desenvolvedor especifique alguma característica do software em alto nível. A ferramenta gera então, automaticamente, o código-fonte, tendo como base a especificação do desenvolvedor. O paradigma da técnica de quarta geração concentra-se na capacidade de se especificar software a uma máquina em um nível que esteja próximo à linguagem natural ou de se usar uma notação que comunique uma função significativa. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . TÉCNICAS DE QUARTA GERAÇÃO O usuário realiza a especificação em uma linguagem de 4G, em alto nível. A codificação propriamente dita é realizada por uma linguagem de 4G. Uma ferramenta de 4G é responsável por transformar automaticamente a especificação em código executável. 43 VS1-Mar/2005 Quanto mais alto o nível da especificação (ou seja, mais próxima da linguagem natural), mais rapidamente é gerado o produto final. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . TÉCNICAS DE QUARTA GERAÇÃO . . . O ambiente de desenvolvimento de software que sustenta o ciclo de vida de quarta geração inclui: linguagens não procedimentais para consulta de banco de dados; ferramentas para geração de relatórios; ferramentas para manipulação de dados; ferramentas para definir interação e telas; ferramentas para geração de códigos; capacidade de planilhas eletrônicas. 44 VS1-Mar/2005 capacidade gráfica de alto nível; e, INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . Ciclo de vida a partir das Técnicas de Quarta Geração Coleta de Requisitos Estratégia de “Projeto” Implementação Usando 4G 45 VS1-Mar/2005 Teste INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . TÉCNICAS DE QUARTA GERAÇÃO . . . Coleta de requisitos O cliente descreve os requisitos os quais são traduzidos para um protótipo operacional. 46 VS1-Mar/2005 Problemas: o cliente pode estar inseguro quanto aos requisitos; o cliente pode ser incapaz de especificar as informações de modo que uma ferramenta de 4G possa entender; e, as linguagens de 4G atuais não são sofisticadas suficientemente para acomodar a verdadeira linguagem natural. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . TÉCNICAS DE QUARTA GERAÇÃO . . . Estratégia de projeto Nesta fase normalmente é projetado como o software será feito, organizado, estruturado, etc.; No entanto, para pequenas aplicações é possível mover-se da fase um direto para a fase três, pulando a fase de projeto. Utilizando linguagens de quarta geração, às vezes esta fase não é necessária; e, 47 VS1-Mar/2005 Já para grandes projetos é sempre necessário desenvolver uma estratégia de projeto. Caso contrário ocorrerão os mesmos problemas encontrados quando se usa abordagem convencional (baixa qualidade, manutenção ruim, má aceitação do cliente, etc). INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . TÉCNICAS DE QUARTA GERAÇÃO . . . Implementação usando linguagem de 4G 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 4G. Teste 48 VS1-Mar/2005 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. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software PARADIGMAS DO DESENVOLVIMENTO DE SOFTWARE . . . TÉCNICAS DE QUARTA GERAÇÃO . . . Considerações Favoráveis Os defensores das linguagens de 4G argumentam que por meio delas se obtém uma redução dramática no tempo de desenvolvimento do software (aumento de produtividade). Desfavoráveis As linguagens de 4G atuais não são mais fáceis de usar do que as linguagens de programação. A manutenção de sistemas usando técnicas de 4G ainda é questionável. 49 VS1-Mar/2005 O código fonte produzido é ineficiente. INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx Engenharia de Software Unidade VI Engenharia de Software 50 VS1-Mar/2005 #FIM# INF0198 (ICO) – Introdução à Computação Professor(a): Xxxxxxxxxx Xxxxxxxx