Arquivo | SOFTWARE RSS feed for this section
Vídeo

SEJA LIVRE!

3 set

Software Livre é software que respeita a liberdade dos usuários de computador (particulares, bem como organizações e empresas), colocando os usuários em primeiro lugar e conceder-lhes a liberdade de controle na execução e adaptação a sua computação e processamento de dados às suas necessidades (concessão plena liberdade de controle e independência, através da disponibilidade de código fonte para análise e alterações); bem como permitindo-lhes a liberdade social, para ser capaz de cooperar ativamente com todos os usuários e desenvolvedores de sua escolha.
Assista agora um excelente documentário sobre esse assunto e reflita. Seja livre!

ALGUNS DOS MAIS FAMOSOS ERROS DE SOFTWARES DA HISTÓRIA

30 ago

software-error

Erros de software custam, só para a  economia dos EUA, cerca de  60 milhões dólares anualmente em retrabalho, perda de produtividade e danos reais. Todos nós sabemos o quanto erros nos programas podem ser irritantes, mas certas falhas de software também podem  ser caras, embaraçosas, destrutivas e mortais. Confira os famosos “desastres” que aconteceram no mundo do software nos últimos anos,  em ordem cronológica:

1. Problemas no Mariner (1962)

Custo: 18,5 milhões dólares

Desastre: Mariner, um foguete com uma sonda espacial para Vênus, foi desviado de seu percurso de voo logo após o lançamento. O controle da missão destruiu o foguete 293 segundos após a decolagem.

Causa: Um programador, ao passar para o computador uma fórmula que haviam lhe entregado escrita manualmente, se esqueceu de uma barra. Sem ela, o software tratava variações normais de velocidade como se fossem sérios problemas, causando falhas por tentativas de correções que acabaram por enviar o foguete fora do curso.

2. Hartford Coliseu Desmorona (1978)

Custo: 70 milhões de dólares, além de outros danos de 20 milhões para a economia local

Desastre: Poucas horas depois de milhares de fãs deixarem o Coliseu Hartford, o teto de treliça de aço desabou sob o peso da neve molhada.

Causa: O programador do software CAD, utilizado para projetar o coliseu, incorretamente assumiu que o suporte do telhado de aço enfrentaria apenas compressão natural. Mas quando um dos suportes inesperadamente recebeu um bloco de neve, este desencadeou uma reação em cadeia que derrubou o telhado de outras seções como dominós.

3.  CIA distribue gás aos soviéticos (1982)

Custo: Milhões de dólares e danos significativos a economia soviética

Desastre: O software de controle se descontrolou e produziu uma intensa pressão no gasoduto Trans-Siberian, resultando na maior explosão não-nuclear da história.

Causa: CIA operatives allegedly planted a bug in a Canadian computer system purchased by the Soviets to control their gas pipelines.  The purchase was part of a strategic Soviet plan to steal or covertly obtain sensitive U.S. technology.  When the CIA discovered the purchase, they sabotaged the software so that it would pass Soviet inspection but fail in operation.

4.  3ª Guerra Mundial (Quase!) (1983)

Custo: Quase toda a humanidade

Desastre: O sistema de alerta precoce soviético falsamente indicou que os Estados Unidos tinham lançado cinco mísseis balísticos. Felizmente, o oficial de serviço soviético tinha uma “sensação esquisita no estômago” e fundamentalmente, se os EUA estavam realmente atacando, eles lançariam mais de cinco mísseis, por isso ele relatou o aparente ataque como um alarme falso.

Causa: Um bug no software soviético falhou ao detectar reflexos solares como falsos mísseis.

5.  Máquina medicinal mata (1985)

Custo: Três mortos e três seriamente feridos

Desastre: A máquina de radiação canadense Therac-25 irradiou doses letais em pacientes.

Causa: Por causa de um bug sutil chamado de “condição de corrida“, um técnico acidentalmente configurou o  Therac-25 de modo que o feixe de elétrons seria como um fogo de alta potência.

6.  Crash na Wall Street (1987)

Custo: $500 bilhões em um dia

Desastre: Em 19 de outubro de 1987, o índice Dow Jones  caiu 508 pontos, perdendo 22,6% de seu valor total.  Esta foi a maior perda que Wall Street já sofreu em um único dia.

Causa: Um mercado em grande alta foi interrompido por uma série de investigações conduzidas pela SEC  e por outras forças do mercado. Como os investidores fugiram de ações investigadas, um número muito grande de ordens de venda foram gerados pelos computadores, quebrando sistemas e deixando os investidores efetivamente cegos.

7.  Linhas da AT&T  “morrem” (1990)

Custo: 75 milhões de ligações perdidas e 200 reservas aéreas perdidas

Desatre: Um switch dos 114 centros de swiches da AT&T sofreu um problema mecanico que fez com que todo o seu centro fosse desligado. Quando o seu centro voltou a ativa, enviou uma mensagem aos outros, o que causou o desligamento dos outros centros e deixou a empresa parada por 9 horas.

Causa: Uma única linha de código em uma atualização de software implementada para acelerar chamadas causou um efeito cascata que desligou a rede.

8.  Patriot Acaba com Soldados (1991)

Custo: 28 soldados mortos e 100 feridos.

Desastre: Durante a primeira Guerra do Golfo, um sistema (Patriot) americano de mísseis na Arábia Saudita falhou ao interceptar um míssel vindo do Iraque. O míssel destruiu acampamentos americanos.

Causa: Um erro de arredondamento no software calculou incorretamente o tempo, fazendo com que o sistema Patriot ignorasse os mísseis Scud de entrada.

9.  Pentium Falha em uma Divisão Longa (1993)

Custo: $475 milhões e a credibilidade de uma empresa

Desastre: O altamente promovido Pentium, da Intel, ocasionalmente cometeu erros ao dividir números de ponto flutuante em um intervalo específico. Por exemplo, dividindo 4195835.0/3145727.0 obteve 1,33374 ao invés de 1,33382, um erro de 0,006%. Embora o bug afetasse apenas alguns usuários, se tornou um pesadelo nas relações públicas. Com uma estimativa de 5 milhões de chips defeituosos em circulação, a Intel se ofereceu para substituir os chips Pentium apenas para os consumidores que poderiam provar que eles precisavam de alta precisão. Contudo a Intel acabou substituindo os chips de qualquer um que reclamou.

Causa: O divisor na unidade de ponto flutuante do Pentium tinha uma tabela de divisão falha, faltando cerca de cinco mil entradas, resultando nestes erros de arredondamento.

10.  Ariane Rocket Goes Boom (1996)

Custo: $500 milhões

Desastre: Ariane 5, o mais novo foguete da Europa não-tripulado, foi intencionalmente destruído segundos após seu lançamento em seu vôo inaugural. Também f0ram destruídos  quatro satélites científicos para estudar como o campo magnético da Terra interage com os ventos solares.

Causa: O desligamento ocorreu quando o computador de orientação tentou converter a velocidade do foguete de 64-bits para um formato de 16 bits. O número era muito grande, o que resultou em erro de estouro. Quando o sistema de orientação desligou, o controle passou para uma unidade idêntica redundante, que também falhou porque nele estava correndo o mesmo algoritmo.

11.  Skynet Traz o Dia do Juízo Final (1997)

Custo: 6 bilhões de mortos e quase a destruição de toda a civilização humana e ecossistemas terrestres (ficção).

Desatre: Alguns operadores, na tentativa de desligar a Skynet (rede mundial de computadores), acabam fazendo a empresa responder disparando mísseis nucleares dos EUA à Rússia, iniciando uma guerra nuclear global a qual o que ficou conhecida como Dia do Juízo Final (29 de agosto de 1997).

Cause: Cyberdyne, o principal fabricante de armas, instalou a tecnologia Skynet em todos os equipamentos militares, incluindo bombardeiros e sistemas de defesa antimísseis. A tecnologia Skynet formava uma rede contínua e efetivamente removia recursos humanos de defesa estratégica. Eventualmente o Skynet se tornou consciente, foi ameaçado quando o homem tentou colocá-lo offline, procurou sobreviver, e revidou com uma guerra nuclear.

12.  Estudo Desastroso (1999)

Custo: Credibilidade da ciência

Desastre: Neste caso, o software utilizado para analisar os desastres tinha um desastre próprio. O jornal The New England Journal of Medicine relatou aumento das taxas de suicídio depois de graves desastres naturais. Infelizmente, estes resultados mostraram-se incorretos.

Causa: Um erro no programa mostrava a taxa de suicídios por ano como o dobro do seu valor real, o que foi suficiente para inutilizar toda a pesquisa.

13.  Passaportes britânicos para lugar nenhum (1999)

Custo: £12.6 millões

Desastre: A agência de passaportes do Reino Unido implementou um sistema da Siemens que falhou ao emitir documentos para meio milhão de cidadãos britânicos. A agência teve que pagar milhões ao governo para compensar a raiva da população.

Causa: A Agência lançou seu novo sistema sem testá-lo de forma adequada ou treinar seus funcionários. Ao mesmo tempo, uma mudança na lei exigia que todos os menores de 16 anos viajando ao exterior deveriam obter um passaporte, resultando em um aumento enorme na procura de passaportes, o que sobrecarregou o sistema .

14.  Bug do Milênio (1999)

Custo: $500 bilhões

Desastre: O desastre de um homem é a fortuna de outro, como demonstra o Bug do Milênio. Empresas gastaram bilhões com programadores para corrigir uma falha no software legado. Embora nenhum falha significativa ocorreu, a preparação para o Bug do Milênio teve um custo significativo e impacto no tempo em todas as indústrias que usam a tecnologia computacional.

Causa: Para economizar espaço de armazenamento de computador, softwares legados muitas vezes armazenavam anos para datas com números de dois dígitos, como 99 para 1999. Esses softwares também interpretavam 00 para significar 1900, em vez de 2000, por isso, quando o ano de 2000 veio, bugs apareceriam.

15.  Tratamento de Cancêr Mortal (2000)

Custo: 8 pessoas mortas e 20 seriamente feridas

Desastre: O software de radiação da empresa Multidate calculou mal a dosagem de radiação que deveria ser enviada, expondo pacientes a níveis fatais de radiação. Os físicos que foram indicados para checar as máquinas foram condenados a morte.

Causa: O software calculava a dosagem de radiação baseando-se na ordem de entrada dos dados, e algumas vezes enviava o dobro da dose do que deveria.

16.  EDS Drops Child Support (2004)

Custo: £539 milhões (e a conta ainda cresce!)

Desastre: A grande empresa de serviços EDA desenvolveu um sistema para o Centro de Suporte à Crianças do Reino Unido (CSA) que acidentalmente pagou a mais 1.9 milhões de pessoas, recebeu em menos de 700.000 casos, registrando uma lista incansável de erros.

Causa:A EDS apresentou um sistema de TI complexo e grande demais para o CSA, ao mesmo tempo em que tentava reestruturar a agência.

17. Desatre no FBI (2005)

Custo: $105 milhões jogados fora!

Desastre: O FBI desistiu da revisão de um sistema após quatro anos de esforço. O projeto Arquivo Virtual foi um maciço sistema de software integrado para agentes compartilharem arquivos de casos e outras informações.

Causa: Má gestão e uma tentativa de construir um projeto de longo prazo sobre tecnologia ultrapassada, resultou em um sistema complexo e inutilizável.

Traduzido e adaptado de DevTopics.

Nota

O QUE É ENGENHARIA DE SOFTWARE?

27 ago

O que é Engenharia?

Vejamos duas definições:

Engenharia é a atividade em que os conhecimentos científicos e técnicos e a experiência prática são aplicados para exploração dos recursos naturais, para o projeto, construção e operação de objetos úteis (Origem: Wikipédia, a enciclopédia livre).

Engenharia é a aplicação de métodos científicos ou empíricos à utilização dos recursos da natureza em benefício do ser humano (Dicionário Houaiss)

Essas definições não são suficientes para designar tudo aquilo que envolve engenharia. Para entender melhor o que é engenharia, propomos que você faça uma pesquisa para responder as seguintes questões:

  • Qual a diferença entre o desenvolvimento de um produto de forma artesanal e o desenvolvimento seguindo os princípios de engenharia? Em outras palavras, qual a diferença entre o trabalho de um artesão e o de um engenheiro?
  • Qual a diferença entre cozinhar e fazer engenharia de alimentos?
  • O que as diferentes engenharias (civil, mecânica, elétrica/eletrônica, química, ambiental, etc.) têm em comum?

Uma engenharia não é uma atividade específica. Um engenheiro é aquele que tem o conhecimento científico e a experiência para desempenhar uma ou mais das diversas atividades da engenharia.

Além disso, a atividade de engenharia não pode prescindir da garantia da qualidade do produto, da conformidade às normas, e do planejamento e gerenciamento de custos e prazos.

Objetivos da Engenharia de Software 

A engenharia de software tem por objetivos a aplicação de teoria, modelos, formalismos e técnicas e ferramentas da ciência da computação e áreas afins para a produção (ou desenvolvimento) sistemática de software.

Associado ao desenvolvimento, é preciso também aplicar métodos, técnicas e ferramentas para ogerenciamento do processo de produção. Isto envolve planejamento de custos e prazos, montagem da equipe e garantia de qualidade do produto e do processo.

Finalmente, a engenharia de software visa a produção da documentação formal do produto, do processo, dos critérios qualidade e dos manuais de usuários finais.

Definições de Engenharia de Software

Os autores apresentam diversas definições para engenharia de software. Vamos apresentar três que consideramos complementares.

  • A engenharia de software é a disciplina envolvida com a produção e manutenção sistemática de software que são desenvolvidos com custos e prazos estimados.
  • Disciplina que aborda a construção de software complexo – com muitas partes interconectadas e diferentes versões – por uma equipe de analistas, projetistas, programadores, gerentes, “testadores”, etc.
  • O estabelecimento e uso de princípios de engenharia para a produção economicamente viável de software de qualidade que funcione em máquinas reais.

A primeira destas definições enfatiza que a engenharia visa não apenas o desenvolvimento, mas também a manutenção do produto. Além disso, ela ressalta a importância da estimativa de custos e prazos de desenvolvimento.

A segunda definição enfatiza a complexidade do produto e do processo. O software é formado por diversos componentes interconectados e o seu desenvolvimento é realizado por uma equipe com diferentes funções e especialidades, cujo trabalho precisa ser gerenciado.

A terceira ressalta que o desenvolvimento de software deve seguir os princípios comuns a todas as engenharias e deve visar a qualidade.

Veja o material apresentado em aula ( arquivo em PDF).

Para saber mais:

  1. James D. Herbsleb. Beyond computer science. Proceedings of the 27th international conference on Software engineering 2005, Pages: 23 – 27.
  2. Boehm, B. “A view of 20th and 21st century software engineering”, Proceeding of the 28th international conference on Software engineering 2006, Shanghai, China May 20 – 28, 2006.
  3. Brooks, Jr., Frederick P. No Silver Bullet – Essence and Accidents of Software Engineering,in The Mythical Man-Month.Essays on Software Engineering, Twentieth Anniversary Edition,Reading, MA: Addison-Wesley1995
  4. Finkelstein, A. Kramer, J. “Software engineering: a roadmap”, in Finkelstein, A. (ed.) The Future of Software Engineering, ACM Press, 2002
  5. Shaw, M. Software Engineering Education: a roadmap.in Finkelstein, A. (ed.) The Future of Software Engineering, ACM Press, 2002
  6. Shaw, M. What Makes Good Research in Software Engineering. ETAPS, Grenoble, 2002.

Fonte: Engenharia de Software

Vídeo

A ENGENHARIA ME ESPERA.

26 ago

Graças a Deus depois de vários anos com dúvidas sobre qual curso superior ingressar, finalmente me decidi qual profissão quero exercer.

Engenharia de software.

Sim, sempre achei o máximo pessoas capazes de desenvolver programas e aplicativos, agora é minha vez.

😀