Você está na página 1de 23

Bianca da Silva Soares

Juliana Farinelli Gonzales

2 ADS – Engenharia de Software I

Pesquisa e exercícios

Pesquisa: 5 erros de software que causaram danos nos

últimos anos

1. Erro de UI Design custa US$ 500 milhões ao Citi

Citi perdeu meio bilhão de dólares por causa de um sistema mal


desenhado no dia 11 de agosto de 2020.

Tudo aconteceu quando três colaboradores estavam realizando


pagamentos a credores da Revlon, uma tradicional marca de cosméticos que
enfrentava uma grave crise devido a pandemia de COVID-19, que totalizavam
US$7,8 milhões a alguns de seus credores. Entretanto, a interface mal
projetada do sistema utilizado os induziu a um erro caríssimo: ao invés do
montante original, os funcionários acabaram transferindo US$900 milhões.

Um software chamado Flexcube, sistema de gestão bancária


desenvolvido pela empresa iFlex e adquirida pela Oracle em meados de 2005.
Na operação em questão, não havia um jeito simples de efetuar o pagamento
dos juros aos credores no Flexcube. Para realizar as transferências, o
funcionário teria que realizar o procedimento como se o banco estivesse
pagando o valor de todo o financiamento, não apenas os juros. O melhor jeito
de fazer isso sem o banco perder dinheiro — e, talvez, o único — seria
informando no sistema uma conta do próprio Citibank para o envio do valor
principal do financiamento (assim, o montante não sairia do banco, na prática)
e, de modo complementar, as contas dos credores para os valores
correspondentes aos juros. Essa “gambiarra” teria funcionado se o funcionário
tivesse habilitado e preenchido os campos “Front” e “Fund” do Flexcube com a
conta do Citibank. O problema é que ele só preencheu o campo “Principal” com
essa informação. Piora. Como esse tipo de operação envolve grandes somas
de dinheiro, a transação teve que ser assinada pelo funcionário que fez a
operação junto de outros dois. Nenhum deles, nem mesmo um funcionário com
um cargo mais avançado, percebeu que preencher apenas o campo “Principal”
não seria suficiente.

Alguns credores retornaram o valor excedente ao banco, mas nem


todos e, ao final, US$500 milhões não foram devolvidos ao Citi.

A empresa tentou ter o valor de volta pela justiça, mas o pedido foi
negado pelo juiz, sendo considerado “um erro bancário de natureza e
magnitude sem precedentes”.

Má qualidade do software: “Vamos voltar um passo atrás: se um


processo de pagamento dá errado mesmo após a revisão de três pessoas
experientes, quer dizer que há algo muito errado com o software usado pela
empresa”.

Descrição de Software: O Oracle Flexcube é uma solução de sistema


bancário em tempo real que oferece suporte a bancos de varejo, corporativos e
de investimento com recursos bancários convencionais e islâmicos. Se tornou
uma solução bancária universal abrangente para bancos e instituições
financeiras e é usado por mais de 600 instituições financeiras em 140 países
ao redor do mundo. A Flexcube ajuda instituições financeiras como bancos,
agências de seguros, etc. fornecendo soluções inovadoras centradas no
cliente.

Impacto: monetário de US$500 milhões.


Figura 1 - Interface probemática do Flexcube

Fontes:

 https://blog.onedaytesting.com.br/2021-em-bugs/
 https://tecnoblog.net/noticias/2021/02/18/citibank-perde-500-
milhoes-dolares-pagamentos-por-engano-software-ruim/
 https://eclipsys.ca/core-banking-and-oracle-flexcube/

2. O lançamento tumultuado do eFootball

O lançamento do eFootball em 2021 (simulador de futebol para


consoles, da Konami, dona do antigo PES, com a mesma função, que estava
perdendo espaço no mercado por conta do FIFA, simulador da EA) não foi bem
recebido por conta dos bugs que comprometeram a usabilidade e a experiência
do usuário e a baixa qualidade dos gráficos, os usuários reclamaram desses
pontos por meio de reclamações e memes, como esse no Twitter:

A pressão de lançar um produto inovador e diferente da concorrência


pode ter feito com que a Konami quisesse “fazer tudo de uma vez”, lotando o
produto de novidades. Isso aumenta o risco de problemas críticos serem
introduzidos ao longo do processo de desenvolvimento e comprometerem a
experiência dos usuários. A resposta do público veio em forma de reclamações

Figura 4 - "Bug" presente no jogo 2


e memes na internet, o que fez a equipe do jogo lançar um comunicado
avisando que iriam atender os feedbacks com uma atualização, resolvendo os
problemas principais.

Quando isso ocorre com um produto com alta exposição, como o


Efootball, acabamos tendo a receita certa para um desastre – de marca e,
muitas vezes, até financeiro.

Descrição de Software: o eFootball, conhecido anteriormente como PES


2022, é o simulador de futebol da Konami disponível para download gratuito no
PlayStation 4 (PS4), PlayStation 5 (PS5), Xbox One, Xbox Series S/Series X,

PC (Steam) e celulares Android e iPhone (iOS).

Impactos: financeiro e caos.

Fontes:

 https://blog.onedaytesting.com.br/2021-em-bugs/
 https://exame.com/tecnologia/efootball-tem-lancamento-
desastroso-e-konami-se-desculpa/
 https://www.techtudo.com.br/tudo-sobre/pes-22/
3. Uber cobrando motoristas pela corrida

Um bug no aplicativo do Uber fez com que alguns


motoristas pagassem pelas corridas que realizavam. O caso aconteceu em
Chicago em Junho do ano passado e foi noticiado pelo Insider e por outros
portais, além de contar com vários relatos de motoristas no Reddit.

Figura 5 - Bug no aplicativo Uber

Um dos motoristas entrevistados foi cobrado em US$ 2 por uma viagem


de 20km. Os casos não se restringem a pequenos custos. Outro motorista da
empresa disse que chegou a ser cobrado em US$ 50 por uma viagem e não
recebeu nenhum lucro por outra corrida realizada. A falha acontece sem
avisos: os motoristas aceitam as viagens e deixam seus passageiros nos
pontos de destino e, quando checam o lucro, percebem que simplesmente
foram cobrados, não pagos.

Descrição de Software: Uber Technologies Inc. é uma empresa


multinacional americana, prestadora de serviços eletrônicos na área do
transporte privado urbano, através de um aplicativo de transporte que permite a
busca por motoristas baseada na localização, em inglês e-hailing, oferecendo
um serviço semelhante ao tradicional táxi.

Impacto: caos.

Fonte:
 https://www.b9.com.br/146657/falha-fez-uber-cobrar-motoristas-
em-vez-paga-los-por-corridas/
 https://pt.wikipedia.org/wiki/Uber

4. Queda de avião da Ethiopian Airlines em 2019

Queda de avião da Ethiopian Airlines em 2019 deveu-se a falha no


software de voo.

Acidente, seis minutos após a descolagem de Adis Abeba, caiu a


sudeste da capital etíope, matando todos os 157 passageiros e tripulantes.

Figura 6 - Queda de avião da Ethiopian Airlines em 2019

Em 10 de março de 2019, seis minutos após a descolagem de Adis


Abeba, o voo ET302 com destino a Nairobi caiu a sudeste da capital etíope,
matando todos os 157 passageiros e tripulantes.

O acidente ocorreu menos de cinco meses depois, em condições


semelhantes, da queda de um 737 MAX da empresa indonésia Lion Air, que
provocou a morte de 189 pessoas.

As duas tragédias, que mergulharam a fabricante norte-americana de


aeronaves Boeing na pior crise da sua história, evidenciaram uma falha no
‘software’ de controlo de voo, o sistema MCAS anti-‘stall’.
Num relatório preliminar, em março de 2020, os investigadores etíopes
já haviam apontado que o ‘design’ do sistema MCAS “o torna vulnerável a
ativações indesejadas”.

“Consistente com o relatório preliminar”, o documento final confirmou


que um sensor à esquerda da aeronave “falhou imediatamente após a
descolagem, enviando dados errados para o sistema de controlo de voo”, disse
hoje a ministra Dagmawit Moges.

“Os dados errados acionaram o sistema MCAS, que repetidamente


apontou o nariz da aeronave até que o piloto perdeu o controlo” da aeronave,
continuou.

Após este segundo desastre aéreo em menos de cinco meses, a entrega


e a produção do 737 MAX foram suspensas e todas as aeronaves existentes
foram imobilizadas por 20 meses, antes de serem gradualmente autorizadas a
voar novamente a partir do final de 2020, depois de correções introduzidas pela
Boeing.

As companhias aéreas, incluindo a Ethiopian Airlines, devolveram em


fevereiro passado mais de 200 dessas aeronaves que estavam ao seu serviço.

Descrição de Software: O MCAS, ou Maneuvering Characteristics


Augmentation System, fornece características consistentes de manuseio do
avião em um conjunto muito específico de condições de voo incomuns. O
MCAS agora contém várias proteções aprimoradas: as medições de dois
sensores de ângulo de ataque (AOA) serão comparadas.

Impacto: mortes.

Fonte:

 https://www.dn.pt/internacional/queda-de-aviao-da-ethiopian-
airlines-em-2019-deveu-se-a-falha-no-software-de-voo-
15540144.html
 https://www.boeing.com/737-max-updates/mcas/#:~:text=MCAS
%2C%20or%20Maneuvering%20Characteristics
%20Augmentation,AOA)%20sensors%20will%20be%20compared.
5. Falha no SISU fez com que estudantes tivessem acesso a outras
contas

Em 2019, estudantes que tentaram fazer a inscrição em faculdades pelo


Sistema de Seleção Unificada (SISU) encontraram uma série de instabilidades
no site do programa. Durante o primeiro dia, houve picos de até 500 mil
usuários simultâneos na página, o que causou sobrecarga e fez com que
muitos alunos não conseguissem se inscrever por conta da lentidão e
intermitência na plataforma.

Nos dias seguintes, as pessoas continuaram com dificuldade de acessar


o site, e, além dos problemas de instabilidade, relataram uma falha grave de
segurança: quando entravam no sistema e colocavam seus dados, alguns dos
estudantes eram redirecionados para a inscrição de outros candidatos. Isso
permitia que o aluno conseguisse visualizar e até mesmo alterar o curso
escolhido por outra pessoa.
Figura 7 - Usuários relatam erro na
plataforma

“Este caso mostra a necessidade de preparação para grandes ações,


com a finalidade de mitigar o risco de problemas graves. Isso se torna mais
relevante ainda em eventos críticos, nos quais o usuário tem uma grande
expectativa, que acaba sendo frustrada por conta de problemas de qualidade”,
conta Abreu.

Descrição de Software: Sistema de Seleção Unificada (Sisu) é


uma plataforma digital no ar desde janeiro de 2010 sendo desenvolvida
pelo Ministério da Educação brasileiro e utilizada pelos estudantes que
realizaram o Exame Nacional do Ensino Médio (Enem) para se inscreverem
nas instituições de ensino superior que aderiram total ou parcialmente, com
uma certa porcentagem de suas vagas, à nota do Enem como forma de
ingresso, em substituição ao vestibular.

Impactos: vazamento de informações e caos.

Fonte:
 https://33giga.com.br/7-falhas-tecnologicas-que-causaram-
prejuizos-para-empresas-e-usuarios/
 https://pt.wikipedia.org/wiki/Sistema_de_Sele
%C3%A7%C3%A3o_Unificada

Exercícios

1. Apresente exemplos de três produtos e de pelo menos um


sistema em que o software, não o hardware, é o elemento que faz a
diferença.

Apresentaremos alguns exemplos de produtos e sistemas em que o


software é o elemento que faz a diferença, começando com o QuickBooks,
uma solução com foco em contabilidade e finanças que auxilia no
gerenciamento de processos e organização financeira de micro, pequenas e
médias empresas e até mesmo contadores.

Outro exemplo é o software de gestão financeira Conta Azul, completo e


de fácil uso, o sistema conta com funcionalidades para gerenciar o dinheiro e o
estoque da empresa, emiti notas fiscais e boletos e oferece um aplicativo, a fim
de auxiliar o empreendedor na gestão de frente de caixa.

Um novo exemplo de produto é a plataforma Potência Tech do iFood,


que foca na capacitação e apoio profissional no setor tecnológico de grupos
sub-representados (como homens transexuais, mulheres cis ou trans, pessoas
negras, indígenas, LGBTQIAP+ ou com deficiência). Desde sua criação, a
plataforma contabilizou mais de 39 mil inscritos, cerca de 17 mil bolsas de
estudo gratuitas e conta com mais de 1.000 pessoas empregadas.

Mais um exemplo de produto é o Movimento Tech, que conecta


empresas que buscam promover o investimento social privado em educação,
com o objetivo de capacitar e empregar pessoas na área da tecnologia. Uma
das iniciativas é a Maratona Tech, uma jornada de aprendizagem por meio de
desafios de lógica e pensamento computacional para despertar o interesse dos
jovens por tecnologia. Foram impactados mais de 80 mil alunos do 9º ano,
ensino médio e fundamental, vindos de 649 escolas, públicas e privadas, de 25
estados. Em dezembro de 2022, o projeto premiou 222 pessoas com bolsas
em tecnologia oferecidas pelas empresas Gama Academy, Kenzie, Neps,
Programadores do Amanhã e Teu Futuro.

Por fim, outro exemplo de sistema é o Sistema de Informações de


Laboratório (LIS), é um sistema informatizado que registra gerencia e
armazena dados e informações para laboratórios de análises clínicas. O
mesmo agiliza a operação de laboratórios de análises clínicas, pois aumenta a
agilidade do envio de pedidos médicos para exames laboratoriais, rastreando e
registrando os pedidos e resultados em um banco de dados, que pode ser
acessado por profissionais autorizados. É considerado um bom software de
apoio para organizações de saúde e seus laboratórios associados, podendo
gerenciar e relacionar dados sensíveis de pacientes, como informações sobre a
infecção, a imunologia, o diagnóstico e o tratamento.

Fontes:

 https://www.remessaonline.com.br/blog/conheca-7-softwares-de-
gestao-para-pequenas-empresas/
 https://investece.com.br/confira-as-top-5-iniciativas-de-tecnologia-
que-fizeram-a-diferenca-na-educacao-brasileira-em-especial-para-
jovens-com-pouco-acesso-e-de-perfil-sub-representados/
 https://star.med.br/pacs-ris-cis-lis-e-his/#2

2. A Engenharia de Software auxiliada por computador é uma


indústria crescente, pesquise 3 produtos CASE comercialmente
disponíveis e apresente-os.

Plataforma Eclipse:
IDE (ambiente de desenvolvimento integrado) Eclipse um Ambiente de
Desenvolvimento Integrado de código aberto e gratuito, que reúne ferramentas
que auxiliam o desenvolvimento de softwares em diversas linguagens de
programação, como por exemplo, Java, PHP, JavaScript/TypeScript e entre
outroas. Usado para auxiliar no processo de desenvolvimento de softwares e
aplicações de forma ágil, também edita códigos do software que está sendo
desenvolvido, realiza a compilação ou interpretação e o debug (depuração),
processo que contempla o mapeamento e testes da aplicação para encontrar
possíveis bugs.

Além disso, a ferramenta sugere códigos e preenchimentos automáticos,


a fim de que o desenvolvedor usufrua de um recurso que complete a sequência
de código que está sendo digitada, agilizando o processo e reduzindo possíveis
erros de digitação.

A IDE Eclipse é robusta e ágil e permite a utilização dos softwares de


qualquer lugar do mundo. Também permite ao desenvolvedor gerenciar seus
espaços de trabalho (Workspaces), cada espaço criado pelo desenvolvedor
permite a organização de configurações e plugins. A ferramenta conta com a
possível criação de grupos de trabalho, que promovem a participação aberta
para buscar inovação aberta no mercado industrial.

Ferramenta Sonar:

O sonar é um projeto open source que avalia a qualidade do código que


está sendo desenvolvido, usando uma abordagem que valida e recomenda as
melhorias a serem realizadas, promove uma vida útil maior ao software.

Para gerenciar a qualidade do código, a ferramenta avalia a arquitetura e


design, número de comentários, regras do Java, alto nível de complexidade,
código duplicado, cobertura de testes no código, etc. Possui um número
bastante extenso de plugins para validação do código em várias linguagens,
como .NET, C++, Java, JavaScript, etc.

A ferramenta pode ser configurada para armazenar todas as


informações de seu código em um banco de dados, para que se possa
acompanhar a evolução da qualidade do projeto. Também possui suporte a
ferramentas de integração continua (IC), que permitem automatizar a geração
de relatórios de avaliação da qualidade do código, assim os desenvolvedores
podem tomar conhecimento mais rápido acerca dos débitos técnicos da equipe
e tomar as ações necessárias para corrigir o problema, o que é importante para
manter a qualidade do software que está sendo desenvolvido e garantir sempre
qualidade nas entregas.

Sistema Subversion:

O Subversion (SVN) é um sistema de controle de versão open-source


que gerencia arquivos e diretórios controlando as alterações realizadas ao
longo do tempo, mantendo o histórico de arquivos armazenados no repositório
mesmo após a ocorrência de eventos como mover, copiar ou renomear. Além
disso, o SVN trabalha com o conceito e atomicidade nas operações, não
permitindo operações parciais, que poderiam prejudicar a consistência do
repositório.

O SVN é multiplataforma e pode ser usado por clientes com diferentes


sistemas operacionais acessando um mesmo servidor que mantém o
repositório. O sistema mantém sempre uma versão atualizada de todo o
código, ideal para situações onde se tem múltiplos usuários trabalhando em um
mesmo projeto.

Ao iniciar os trabalhos, os desenvolvedores devem realizar o checkout


ou update, que consiste em carregar em sua máquina a mais atual versão do
repositório, chamada de head version. Ao terminar o seu trabalho diário, o
desenvolvedor deve subir para o repositório a nova versão do código (esta
operação é denominada committ). Ao receber a versão, o SVN realiza
comparações entre o código atual e a última versão, caso apenas uma nova
versão tenha sido subida, ela se torna a head version, caso mais de uma
pessoa subiram códigos, o servidor tentará resolver os conflitos e, se não
conseguir, o usuário será alertado no momento do commit, e será solicitado a
resolvê-lo manualmente.
Fontes:

 https://www.devmedia.com.br/ferramentas-case-conhecendo-
algumas-boas-opcoes/32034
 https://www.remessaonline.com.br/blog/ide-eclipse/
 https://www.devmedia.com.br/sondando-qualidade-de-codigo-
com-o-sonar/24239
 https://blog.myscrumhalf.com/sonar-apoiando-a-qualidade-do-
desenvolvimento-de-software/
 https://www.javadev.com.br/tools/sonar.html
 https://www.sorocaba.unesp.br/#!/programas-especiais/pet-eca/
pesquisa/o-que-e-svn/
 https://www.devmedia.com.br/sistema-de-controle-de-versao-em-
projetos-web/31876

3. Quais dos paradigmas de engenharia de software seriam os mais


indicados às suas aplicações de software?

O Ciclo de Vida Clássico da Engenharia de Software:


Este é conhecido também por Modelo Cascata, o paradigma requer uma
abordagem sequencial ao desenvolvimento de software que se inicia em um
nível básico e avança ao longo da Análise, Projeto, Codificação, Teste e
Manutenção.

O ciclo de vida clássico é o paradigma mais antigo e o mais amplamente


usado da Engenharia de Software. Porém, nas últimas décadas várias críticas
levantadas questionam sua aplicabilidade em todas as situações.

1. Os projetos reais raramente seguem o fluxo sequencial que o modelo


propõe.
2. Muitas vezes é difícil para o cliente declarar todas as exigências
explicitamente logo no início.
3. Exige paciência do cliente. Uma versão do software não estará
disponível até um ponto tardio do cronograma do projeto. Um erro
grosseiro se não detectado pode ser desastroso.

Apesar desses problemas serem reais o paradigma do Ciclo de Vida Clásico


tem um lugar definido e importante na Engenharia de Software. Embora tenha
fragilidade, ele é significativamente melhor do que uma abordagem casual ao
desenvolvimento de software.

Detalhando esse modelo nomes mais descritivos para seu passo a passo
são:

 Análise e Engenharia de Sistemas = inicia-se com o


estabelecimento dos requisitos para todos os elementos do
sistema, observando sua relação com pessoas, hardware e banco
de dados.
 Análise de Requisitos de Software = o processo de coleta dos
requisitos é intensificado e concentrado especificamente no
software, tudo revisado com o cliente.
 Projeto = quando a ideia é montada e documentada e tornando
parte da configuração do software.
 Codificação = a etapa de codificação executa a tarefa de traduzir
o projeto em uma forma legível por máquina.
 Testes = o processo de testes concentra-se nos aspectos lógicos
internos do software, garantindo que todas as rotinas tenham sido
testadas e funcionam para os objetivos da documentação.
 Manutenção = mudanças por erros encontrados ou adições de
funções pedidas pelo cliente por necessidade ou inovação, a
manutenção reaplica cada uma das etapas precedentes do ciclo
de vida clássico, e não a um novo.

Modelo de prototipação:

Como em todas as abordagens ao desenvolvimento de software, a


prototipação inicia-se com a coleta de requisitos. Durante essa fase, clientes e
desenvolvedores ficam em constante interação, facilitando assim o
levantamento de requisitos e funcionalidades do sistema. Ocorre então a
elaboração de um “projeto rápido”, um storyboard, concentrando-se nos
aspectos definidos pelo usuário/cliente. O Projeto rápido leva a construção de
um protótipo que é avaliado pelo cliente/usuário e é usado para refinar os
requisitos, buscando o melhor e mais eficiente resultado.

Assim como o Ciclo de Vida Clássico, a Prototipação como paradigma


da Engenharia de Software pode trazer problemas nas seguintes situações:
1. O Protótipo na grande maioria das vezes é projetado sem a
preocupação com a qualidade e manutenibilidade a longo prazo.
2. A implementação utilizada para apresentar o protótipo pode no final ser
a definitiva.
3. Com o tempo os desenvolvedores podem se acostumar com a forma
de codificação da prototipação.
4. O descarte do protótipo pode ser visto como perda de tempo pelo
cliente.

A Prototipação é um paradigma eficiente da Engenharia de Software. A


chave é o acordo entre cliente e desenvolver que o protótipo será construído
afim de servir como base para definição de requisitos. Ele será depois
descartado (pelo menos em parte) e o software real será projetado, levando-se
em consideração a qualidade e a manutenibilidade.

Vimos que a ideia principal da prototipação é a criação de uma espécie


de “modelo” que servirá de base para algo real. Uma boa maneira de chegar
em ótimos resultados.

Modelo Espiral:
Esse modelo é resumido nas seguintes fases, mas para entendimento
total é necessário observar a imagem que o exemplifica.

1. Planejamento: Determinação dos objetivos, alternativas e restrições.


2. Análise dos Riscos: Análise de alternativas e identificação/resolução
dos riscos.
3. Engenharia: Desenvolvimento do produto no “nível seguinte”.
4. Avaliação Feita Pelo Cliente: Avaliação dos resultados da
engenharia.

Um aspecto intrigante do modelo Espiral é se levarmos em consideração


a dimensão radial da figura acima. Cada nova interação, iniciando-se do centro
e avançando para fora, versões progressivamente, mas completas do software
são construídas.

O paradigma do modelo Espiral para a Engenharia de Software dentre


os outros citados é o mais maduro para desenvolvimento de software de
grande porte. Mas, como os demais paradigmas, o modelo Espiral, também
não é perfeito. Abaixo temos alguns dos pontos negativos:

1. Poderá ser difícil convencer o cliente (Principalmente em situação de


contrato) de que a abordagem evolutiva é controlável.
2. Ela exige considerável experiência na avaliação dos riscos.
3. Se um grande risco não for descoberto, sem dúvidas ocorrerão problemas
no desenvolvimento que dificultarão a decodificação, que ficará muito
complexa ou irá se perder.

Modelo da Quarta geração (4GT):


O paradigma (4GT) da engenharia de software 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.

Atualmente, o ambiente de desenvolvimento de software que sustenta o


paradigma 4GT inclui algumas, ou todas, das seguintes ferramentas:
linguagens não-procedimentais para consulta de banco de dados, geração de
códigos, capacidade gráfica de alto nível e capacidade de planilhas eletrônicas.

Porém, as atuais ferramentas 4GT não são sofisticadas o bastante para


acomodar verdadeiramente “linguagem natual”, e não o serão por algum
tempo. No momento, o diálogo cliente-desenvolvedor continua sendo uma
parte essencial da abordagem 4GT. O uso da 4GT sem planejamento (para
grandes projetos) causará as mesmas dificuldades (má qualidade,
manutenibilidade ruim e má aceitação do cliente) que temos encontrado
quando desenvolvemos software usando abordagens convencionais.

Para transformar a implementação de uma 4GT num produto, o


desenvolvedor deve realizar testes cuidadosos, desenvolver uma
documentação significativa e executar todas as demais atividades de
“transição” que também são exigidas em outros paradigmas de engenharia de
software. Além disso, o software desenvolvido por 4GT deve ser construído de
um modo que possibilite rápida manutenção.

Por fim, os métodos convencionais provavelmente contribuíram cada vez


menos para o desenvolvimento de software, e o modelo deve ser escolhido de
maneira inteligente, pois cada projeto e cada equipe tem suas exigências,
necessidades e limites de investimento e tempo para conclusão de projeto.

Referência:

 Engenharia de Software (Roger S. Pressman).


4. Pesquise duas linguagens de quinta geração e apresente uma
discussão resumida: Quão ampla é sua aplicabilidade?

Gerações de linguagem de programação:

As linguagens de quinta geração possuem ferramentas visuais para


desenvolver um programa. Exemplos de linguagem de quinta geração incluem
Mercury, OPS5 e Prolog. São linguagens de alto nível, logo são aquelas
composta de símbolos mais complexos, inteligível pelo ser humano e não-
executável diretamente pela máquina. Exemplo: Pascal, Fortran, Java.

Irei citar 2 linguagens de quinta geração:

Mercury:
Mercury é uma linguagem de programação lógica funcional feita para
uso no mundo real. Baseado na linguagem de programação lógica Prolog. Ele
tem a mesma sintaxe e os mesmos conceitos básicos, como o algoritmo de
resolução de cláusulas definidas lineares seletivas (SLD). Ele pode ser visto
como um subconjunto puro do Prolog com tipos e modos fortes.

Nível de produção: C de baixo nível para GNU Compiler Collection


(GCC), o back-end original do Mercury C de alto nível C Java C # Erlang.

Prolog:
PROLOG (acrônimo para PROgramming LOGic) é um exemplo de
Linguagem de Programação Lógica. Ele usa uma forma de lógica matemática
(cálculo de predicado) para resolver consultas em um banco de dados de fatos
e regras fornecido pelo programador.

O Prolog é uma linguagem declarativa, ou seja, ao invés de o programa


estipular a maneira de chegar à solução passo-a-passo, como acontece nas
linguagens procedimentais ou orientadas a objeto, ele fornece uma descrição
do problema que se pretende computar utilizando uma coleção de fatos e
regras (lógica) que indicam como deve ser resolvido o problema proposto.
Como podemos ver, o Prolog é mais direcionado ao conhecimento do que aos
próprios algoritmos.

Além de ser uma linguagem declarativa, outro fato que o difere das
outras linguagens é a questão de não possuir estruturas de controle (if-else,
do-while, for, switch) presentes na maioria das linguagens de programação.
Para isso utilizamos métodos lógicos para declarar como o programa deverá
atingir o seu objetivo.

Um programa em Prolog pode rodar em um modo interativo, o usuário


poderá formular queries utilizando os fatos e as regras para produzir a solução
através do mecanismo de unificação.

As linguagens de 5ª Geração, são linguagens do conhecimento, usadas


principalmente na área de Inteligência Artificial. Facilitam a representação do
conhecimento que é essencial para a simulação de comportamentos
inteligentes. Sua aplicabilidade é ampla e útil nesse meio e na computação
simbólica, como banco de dados relacionais, compreensão de linguagens
naturais (português, inglês, etc.), automação de projetos, análise de estruturas
bioquímicas, sistemas especialistas e representações básicas.

Fontes:

 http://www.linhadecodigo.com.br/artigo/1697/descobrindo-o-
prolog.aspx
 https://artigos.wiki/blog/en/Mercury_(programming_language)

Você também pode gostar