Android

Como evitar problemas de software

5 ERROS QUE TODO PROGRAMADOR INICIANTE COMETE | e que você pode estar cometendo!

5 ERROS QUE TODO PROGRAMADOR INICIANTE COMETE | e que você pode estar cometendo!

Índice:

Anonim

Nesta era digital, você deve ter ouvido falar de gigantes das mídias sociais como Facebook e Twitter e plataformas de e-commerce, como Alibaba e Amazon. Esses sites online contam com vários pacotes de software para sua operação. Esses programas mudaram francamente a forma como trabalhamos, pensamos e vivemos.

Além disso, muitos dispositivos que antes eram apenas de natureza mecânica são agora controlados por software. Por exemplo, os termostatos já foram dispositivos eletromecânicos. No entanto, eles agora dependem muito de software para operação.

No entanto, os erros de software podem ser bastante problemáticos, especialmente com a nossa crescente dependência deles para as atividades diárias. Na verdade, houve realmente algumas ocasiões em que o software ficou aquém do objetivo pretendido, levando a resultados desagradáveis.

Falamos de 4 ocasiões em que o desempenho do software deixou de ser notado e de como evitar tais problemas de software.

Leia também: 10 razões pelas quais você não deve estar com pressa para comprar um iPhone X

1. Interrupção de Estado dos EUA em 911

O 911 é um serviço crítico, que permite que os indivíduos contatem o pessoal de emergência sempre que necessário. Às vezes, entrar em contato com os despachantes de emergência através do 911 pode literalmente fazer a diferença entre a vida e a morte.

Portanto, foi um grande desastre quando, em 9 de abril de 2014, o 911 roteamento de chamadas falhou em sete estados dos EUA, incluindo Califórnia, Flórida, Minnesota, Carolina do Norte, Pensilvânia, Carolina do Sul e Washington.

Essa interrupção foi causada por um erro de codificação evitável, que ocorreu em um centro de gerenciamento de chamadas de emergência no Colorado que era de propriedade da Intrado.

2. Aterramento da frota da United Airlines

Em julho de 2015, a United Airlines foi forçada a aterrar toda a sua frota de aeronaves devido a uma falha no software. Isso afetou mais de 4.900 voos em todo o mundo e deixou muitos passageiros retidos nos aeroportos e, obviamente, frustrados.

Provavelmente, também houve um impacto econômico, já que a companhia aérea teria que compensar muitos passageiros pelo inconveniente. Provavelmente também houve várias reuniões de negócios importantes que foram frustradas por causa do aterramento.

3. Mau funcionamento do pedal do acelerador de Toyota Camry

Em setembro de 2007, Jean Bookout estava viajando pela Interstate Highway 69 em Oklahoma com a passageira Barbara Schwarz, quando ela encontrou dificuldades em controlar seu Toyota Camry.

Ela tentou levantar os pés do acelerador, mas o carro continuou acelerando. O pedal do freio não conseguiu parar o carro e ela foi forçada a usar o freio de emergência.

Infelizmente, isso enviou o carro em direção a um aterro. Schwarz morreu como resultado e Bookout foi hospitalizado por cinco meses devido a ferimentos graves.

Especulou-se que o acidente ocorreu devido a várias inadequações de codificação que levaram à queda de uma tarefa na CPU do Camry. Esta CPU controlaria um número excessivamente grande de funções, incluindo ignição, controle de aceleração e controle de cruzeiro.

O código da Toyota se tornou uma bagunça emaranhada depois de vários anos de novos códigos sendo empilhados nos antigos. Isso geralmente é chamado de "código de espaguete".

O código espaguete é desnecessariamente complexo e torna quase impossível encontrar erros. Além disso, a Toyota também violou várias regras de segurança em sua codificação. Deve-se notar que este não foi um caso isolado de aceleração não intencional em um Toyota.

No entanto, o acidente da Bookout trouxe essa questão para a luz e destacou as falhas da Toyota em seu processo de software. Chegou-se a conclusão de que havia mais de 10 milhões de formas de aceleração indesejada para potencialmente ocorrer, com base na maneira como o código da Toyota foi estruturado.

Falha do termostato do ninho

A Nest é uma empresa de propriedade da Alphabet, que produz termostatos inteligentes. Esses termostatos são bastante bacanas e permitem que os usuários controlem a temperatura em suas casas a partir de seus smartphones.

No inverno passado, os termostatos Nest tiveram uma falha na forma de uma atualização de software defeituosa, que fez com que suas baterias fossem drenadas. Infelizmente, esse erro aconteceu no meio do inverno, deixando vários usuários sem calor temporariamente. Isso é definitivamente algo que você não quer que aconteça nesta época do ano.

Veja a seguir: Selfies não são tão triviais quanto as mídias sociais os fizeram mais tarde

Uma Breve Análise de Problemas de Software

Abordagens como o design baseado em modelo e o TLA + permitem que os desenvolvedores obtenham uma visão geral mais ampla de como o software funciona.

Brett Victor, um proeminente pesquisador de computadores, avalia que há uma desconexão entre os programadores e os problemas que eles estão tentando resolver com os códigos.

Devido a essa desconexão, torna-se difícil para os programadores imaginar o que eles estão tentando colocar em códigos. Victor acha que esse é um dos fatores que contribuem para que o software esteja repleto de bugs.

No entanto, há esperança. Abordagens como o design baseado em modelo e o TLA + permitem que os desenvolvedores obtenham uma visão geral mais ampla de como o software funciona.

O design baseado em modelo, como o nome sugere, permite o desenvolvimento de software por meio de modelos visuais. O TLA +, que é a abreviação de Temporal Logic of Actions, é uma linguagem projetada para escrever as especificações de um programa de computador. O que é ótimo sobre o TLA + é que ele permite testes exaustivos e verificação de software antes de ser divulgado.

Tanto o design baseado em modelo quanto o TLA + já provaram seu sal. A Esterel technologies, uma empresa de desenvolvimento de software, usa design baseado em modelo para criar software crítico para segurança enquanto o TLA + é usado por empresas como a Microsoft para consertar um possível erro catastrófico do Xbox, e pela Agência Espacial Européia para reescrever códigos para uma investigação pousou em um cometa.

O processo de escrever código é tido em alta consideração pelos programadores. Muitos deles são simplesmente intrigados pelo processo de escrever códigos. É, portanto, um desafio fazer com que alguns programadores aceitem abordagens como design baseado em modelo e TLA +. Essas abordagens são frequentemente percebidas como estritamente acadêmicas, sem viabilidade no mundo real. No entanto, uma mudança de visão deve ocorrer o mais cedo possível.

Leia também: Estamos empurrando nossas crianças para a cegueira

Pensamentos finais

O software está sendo cada vez mais usado em aplicativos que exigem precauções de segurança incorporadas. Melhores métodos de design de software devem ser introduzidos em toda a linha como tais aplicativos são vitais em nossas vidas.

Processos como automação dependem fortemente de software atualmente, mas um erro em uma linha de código pode nos levar a grandes reveses como as instâncias acima mostram.

Agora, imagine algo como inteligência artificial (AI) sendo incorporada a esses aplicativos. AI é assustador o suficiente por si só, sem falhas de software. Adicione bugs na mistura e não há como dizer o que poderia acontecer.

No entanto, há um forro de prata aqui. Com um pouco de trabalho e algumas novas ferramentas, podemos criar um software melhor e AI, projetando-o de forma mais sólida e testando-o em seus studs.

Vamos torcer para que esta questão crítica seja levada a sério pelas autoridades envolvidas, para que possamos usar o software em todo o seu potencial, mas apenas para construir um futuro mais seguro e mais inteligente.

Veja a seguir: Inteligência Artificial: Tipos e o Futuro para os Humanos