Pergunta

Parece que o ferro velho é software rocha sólida. Por que é que? Será que é porque o software é tão madura, que todos os bugs foram trabalhados? Ou é porque as pessoas ficaram tão utilizado para os erros que eles nem sequer reconhecê-los e trabalhar em torno deles? Foram o software especificações perfeito desde o primeiro dia e uma vez que o software foi escrito, tudo só funcionou? Eu estou tentando entender como viemos dias de mainframe computação que todos agora defende como apenas trabalhando para sensação de que TDD é agora o caminho a percorrer.

Foi útil?

Solução

Por que na Terra você acha que eles não têm bugs?

IBM tem um vasta infra-estrutura de suporte para relatórios de erros e resolução (PMRs, APARs e PTFs), que é usado pesadamente.

software de mainframe que não tenha sido tocado por muitos anos certamente será bem compreendida (pelo menos em termos de suas idiossincrasias) e, provavelmente, tiveram muitos bugs fixos ou contornado. Todo o material novo sendo desenvolvido hoje em dia realmente planos para um certo número de bugs e patches de GA (disponibilidade geral) para, pelo menos, GA + 36 meses. Na verdade, um ex-chefe da mina na IBM usado para hesitar em ser forçado a fornecer números para erros planejados com a linha:. "Não somos planejamento ter todos os erros"

O mainframe defende princípios RAS (confiabilidade, disponibilidade e manutenção) além do que a maioria do hardware desktop e software jamais poderia aspirar a - isso é apenas a minha opinião é claro, mas eu estou certo: -)

Isso porque IBM sabe muito bem que o custo de corrigir bugs aumenta muito como você se move através do ciclo de desenvolvimento - é muito mais barato para corrigir um erro no teste de unidade que é para corrigir um em produção, em termos de tanto dinheiro e reputação.

Há uma grande quantidade de esforço e custo gasto apenas em liberar software livre de bugs, mas mesmo eles não acertar o tempo todo.

Outras dicas

Não há bugs no software quadro principal, apenas características.

Eu costumava trabalhar em aplicativos de mainframe. Os aplicativos anteriores não tiveram muitos erros porque não fazer muito. Nós escrevemos centenas, se não milhares de linhas de Fortran para fazer o que você faria com um par de fórmulas em Excel agora. Mas quando fomos a partir de programas que começaram a sua entrada, colocando um valor nas colunas 12-26 de cartão de 1, e outro valor nas colunas 1-5 da placa 2, etc, para aqueles que tiveram a entrada de uma tela ISPF interativa ou uma luz caneta e saída em uma plotter Calcomp 1012 ou um terminal Tektronix 4107, o número de bugs subiu.

Há ABUNDÂNCIA asre de bugs no software de mainframe, eles não são apenas publisized tanto devido ao relativamente pequeno grupo de desenvolvedores afetados. Basta perguntar a alguém que faz desenvolvimento de mainframe quantas Abends eles vêem em uma base diária!

Eu aprendi a usar depuradores e analisar despejos de núcleo em mainframes ferro grandes. Confie em mim eles só surgiu por causa de bugs. Você está errado simplesmente.

No entanto arquiteturas de mainframe foram projetados para a estabilidade sob alta tensão (bem em comparação a dizer sistemas não mainframes) para que talvez você pode argumentar que eles são melhores nesse sentido. Mas o código sábio? Nah bug ainda estão lá ...

A minha experiência com software aplicativo de mainframe (ao contrário de sistemas operacionais) é muito fora da data, mas a minha lembrança é que a maioria das aplicações são aplicações batch que são, logicamente, muito simples:

a) Leia um arquivo de entrada
b) Processo de cada registro (se você estiver sentindo ousada, atualizar um banco de dados)
c) Escrever um arquivo de saída

Não há eventos de entrada do usuário para se preocupar, uma equipe de operadores qualificados para monitorar o trabalho como ele é executado, pouca interação com sistemas externos, etc, etc.

Agora, a lógica de negócios podem ser complexos (especialmente se ele é escrito em COBOL 68 e o banco de dados não é relacional), mas se isso é tudo que você tem que se concentrar em, é mais fácil fazer software confiável.

Eu nunca trabalhei em software para mainframes mim, mas meu pai era um programador de COBOL na década de 1970.

Quando você escreveu software naqueles dias, encontrar bugs não era tão simples como compilar seu código-fonte e olhando para as mensagens de erro espetos compilador para trás em você ou executando o seu programa e olhar para o que ele estava fazendo de errado. Um datilógrafo teve que perfurar o programa em cartões perfurados, que passaria então a ser lidos no computador, que iria imprimir os resultados de seu programa.

Meu pai me disse que um dia alguém veio com um carrinho cheio de caixas de papel e colocá-los ao lado da porta do quarto onde ele estava trabalhando. Ele perguntou: "O que é isso ?!", eo cara lhe disse: "Essa é a saída do seu programa". Meu pai cometeu um erro que causou o programa para imprimir uma enorme quantidade de rabiscos em uma pilha de papel que poderia ter usado uma árvore inteira.

Você aprende com seus erros rapidamente dessa forma ...

Oh, eles definitivamente têm bugs - ver thedailywtf.com para alguns exemplos mais divertido. Dito isto, a maioria das aplicações de mainframe "" se vê hoje tiveram 30 anos para obter todas as dobras funcionou, então eles têm um pouco de uma vantagem sobre a maioria das aplicações criadas nos últimos anos.

Enquanto eu não tenho experiência com mainframes, eu estou supondo que é o primeiro ponto que você fez: o software tem sido em torno de décadas. A maioria dos bugs restantes terão sido trabalhados.

Além disso, não se esqueça fiascos como o Y2K. Todos os bugs pessoas têm tropeçou em foram trabalhados para fora, e em 20 anos a maioria das situações, provavelmente, terá ocorrido. Mas de vez em quando, uma nova situação não conseguem vir que faz até 20 anos de trabalho parada software.

(Outro exemplo interessante disso é o bug encontrado em, creio eu, BSD Unix. Verificou-se um ano ou mais atrás, e tem sido em torno de 20 anos sem que ninguém correndo para ele).

Eu acho que a programação era apenas um campo avançado que engenheiros única escolhidos poderia trabalhar nele. O mundo da programação agora é muito, muito maior com menores barreiras de entrada em todos os aspectos.

Eu acho que é algumas coisas. Primeiro é que o ciclo de correção-a-bug-recompilação era mais caro em mainframes geralmente. Isto significava que o programador não podia simplesmente despejos fora do código e "ver se funciona". Ao fazer in-your-cabeça de compilação e tempo de execução de simulações você pode detectar mais erros do que deixar a captura compilador-los.

Em segundo lugar, todo mundo e seu irmão não era um "programador". Eles eram especialistas geralmente altamente treinados. Agora programas vêm de rapazes sentados em seu porão com um diploma de High School. Nada de errado com isso!!! mas tende a ter mais erros que o engenheiro que vem fazendo isso profissionalmente por 20 anos.

Em terceiro lugar, os programas de mainframe tendem a ter menos interação com seus vizinhos. No Windows, por exemplo, um aplicativo ruim pode falhar o próximo a ele ou todo o sistema. Em mainframes têm geralmente memória segmentada por isso tudo o que pode falhar é em si. Dadas as toneladas de coisas que funcionam em seu sistema desktop típico de todos os tipos de fontes de marginalmente-confiáveis ??ele tende a fazer qualquer escamosa programa em algum grau.

A maturidade é definitivamente um fator. A COBOL programa de processamento de cartão de crédito que foi escrito há 20 anos e tem sido aperfeiçoado mais e mais para eliminar erros é menos propensos a ter um problema do que uma versão 0.1 de qualquer programa. Claro, há a questão de que esses velhos reescritos programas infinitas vezes geralmente acabam código espaguete que é quase impossível de manter.

Como qualquer coisa, isso depende principalmente do programador (s) e sua metodologia. Eles fazem testes de unidade? Será que eles documentar e escrever código limpo? Faça código que apenas slop-and-drop para o compilador para ver se existem quaisquer bugs (esperando o compilador pode pegá-los todos)?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top