Question

Il semble que le fer est vieux rocher logiciel solide. Pourquoi donc? Est-ce parce que le logiciel est si mature, qui ont été travaillé tous les bugs? Ou est-ce parce que les gens ont été tellement utilisé pour les insectes qu'ils ne les reconnaissent même pas et travaillent autour d'eux? Étaient les spécifications du logiciel parfait dès le premier jour et une fois que le logiciel a été écrit, tout juste travaillé? J'essaie de comprendre comment nous venons jours de calcul de l'ordinateur central que tout le monde maintenant juste épouse travailler pour le sentiment que TDD est maintenant le chemin à parcourir.

Était-ce utile?

La solution

Pourquoi diable pensez-vous qu'ils ne sont pas des bugs?

IBM a vaste infrastructure de soutien pour les rapports de bogues et de la résolution (APRM, APAR et PTFs), qui est largement utilisé.

logiciel Mainframe qui n'a pas été touché depuis de nombreuses années sera certainement bien compris (au moins en termes de ses idiosyncrasies) et aura probablement eu de nombreux bugs fixes ou travaillé autour. Toutes les nouveautés en cours d'élaboration de nos jours, prévoit en fait pour un certain nombre de bogues et des correctifs de GA (disponibilité générale) au moins GA + 36 mois. En fait, un ex-patron de la mine à IBM utilisé pour regimber à être obligé de fournir des chiffres pour les bugs prévus avec la ligne:. « Nous ne sommes pas planification pour avoir des bugs »

L'ordinateur central adopte des principes RAS (fiabilité, disponibilité et maintenabilité) au-delà de ce que la plupart du matériel de bureau et des logiciels pourraient jamais aspirer à - c'est seulement mon avis bien sûr, mais je suis à droite: -)

C'est parce que IBM sait trop bien que le coût de la correction de bugs augmente beaucoup que vous progressez dans le cycle de développement - il est beaucoup moins cher pour corriger un bug dans les tests unitaires que de fixer une production, en termes à la fois l'argent et réputation.

Il y a beaucoup d'efforts et les coûts dépensés pour que la diffusion des logiciels sans bug, mais même ils ne sont pas bien tout le temps.

Autres conseils

Il n'y a pas de bugs dans le logiciel principal de cadre, ne présente que.

Je travaillais sur les applications mainframe. Les applications antérieures n'ont pas eu beaucoup d'insectes parce qu'ils ne fait pas beaucoup. Nous avons écrit des centaines, voire des milliers de lignes de FORTRAN à faire ce que vous feriez avec un couple de formules dans Excel maintenant. Mais quand nous sommes passés de programmes qui ont obtenu leur contribution en mettant une valeur dans les colonnes 12-26 de la carte 1, et une autre valeur dans les colonnes 1-5 de la carte 2, etc., à ceux qui ont pris l'entrée d'un écran ISPF interactif ou une lumière stylo et sortie sur un traceur Calcomp 1012 ou un terminal Tektronix 4107, le nombre de bogues est passé.

Il Asre ABONDANCE de bugs sur les logiciels de l'ordinateur central, ils sont tout simplement pas publisized autant en raison du groupe relativement restreint de développeurs touchés. Il suffit de demander à quelqu'un qui fait le développement de l'ordinateur central combien Abends ils voient tous les jours!

J'ai appris à utiliser débogueurs et d'analyser des coredumps sur les grands ordinateurs centraux de fer. Croyez-moi, ils ne sont venus au sujet à cause de bugs. Vous êtes tout simplement faux.

Cependant les architectures mainframe ont été conçus pour la stabilité sous haute contrainte (bien par rapport à-dire des systèmes non mainframe) afin que vous puissiez peut-être arguer qu'ils sont mieux de cette façon. Mais le code sage? Nah bug sont toujours là ...

Mon expérience avec le logiciel d'application mainframe (par opposition aux systèmes d'exploitation) est assez à jour, mais je me souviens que la majorité des applications sont des applications de traitement par lots qui sont, logiquement, très simple:

a) lire un fichier d'entrée
b) Traiter chaque enregistrement (si vous vous sentez audacieux, mettre à jour une base de données)
c) Ecrire un fichier de sortie

Aucun événement d'entrée utilisateur à se soucier, une équipe d'opérateurs qualifiés pour surveiller le travail tel qu'il fonctionne, peu d'interaction avec les systèmes externes, etc, etc.

Maintenant, la logique métier peut être complexe (surtout s'il est écrit en COBOL 68 et la base de données n'est pas relationnelle), mais si c'est tout ce que vous devez vous concentrer sur, il est plus facile de faire un logiciel fiable.

Je ne l'ai jamais travaillé sur des logiciels pour mainframes moi-même, mais mon père était un programmeur COBOL dans les années 1970.

Lorsque vous avez écrit le logiciel dans ces jours, trouver des bogues n'a pas été aussi simple que la compilation de votre code source et en regardant les messages d'erreur du compilateur recrache à vous ou l'exécution de votre programme et regarder ce qu'il faisait mal. Une dactylo a dû percer le programme dans des cartes perforées, qui serait alors lu dans l'ordinateur, qui imprime les résultats de votre programme.

Mon père m'a dit qu'un jour, quelqu'un est venu avec un panier plein de boîtes de papier et de les mettre à côté de la porte de la pièce où il travaillait. Il a demandé: « Qu'est-ce que ?! », et le gars lui a dit «C'est la sortie de votre programme ». Mon père a fait une erreur qui a causé le programme à imprimer une énorme quantité de charabia sur une pile de papier qui aurait pu utiliser un arbre entier.

Vous apprenez de vos erreurs rapidement de cette façon ...

Oh, ils ont certainement des bugs - voir thedailywtf.com quelques exemples plus divertissants. Cela dit, la plupart des applications « mainframe » que l'on voit aujourd'hui ont eu 30 ans pour obtenir tous les Kinks ont travaillé, donc ils ont un peu d'un avantage sur la plupart des applications créées au cours des dernières années.

Bien que je n'ai pas d'expérience avec les ordinateurs centraux, je devine que c'est le premier point que vous avez fait: le logiciel depuis des décennies. La plupart des bugs restants ont été élaborés.

Par ailleurs, ne pas oublier fiascos comme Y2K. Tous les bugs personnes ont trébuché sur ont été élaborées, et dans 20 ans, la plupart des situations auront probablement eu lieu. Mais chaque fois dans un certain temps, une nouvelle situation fait gérer à venir qui fait même vieux quartier d'arrêt du logiciel de 20 ans.

(Un autre exemple intéressant est le bug trouvé dans, je crois, Unix BSD. Il a été trouvé un an il y a, et il a été autour depuis 20 ans sans que personne en cours d'exécution en elle).

Je pense que la programmation était juste un champ de pointe qui pourraient y travailler les ingénieurs ne choisis. Le monde de la programmation est maintenant beaucoup plus grand avec obstacles à l'entrée dans tous les aspects.

Je pense qu'il est quelques choses. La première est que le cycle de fix-un-bug-recompilation était plus cher dans les ordinateurs centraux en général. Cela signifiait que le programmeur ne pouvait pas simplement slop sur code et « voir si cela fonctionne. » En faisant compilez-votre-tête et des simulations d'exécution, vous pouvez repérer plus de bugs que de laisser le compilateur les attraper.

En second lieu, tout le monde et leur frère était pas un « programmeur. » Ils étaient en général des spécialistes hautement qualifiés. Maintenant, les programmes viennent de gars assis dans leur sous-sol avec un diplôme d'études secondaires. Aucun problème avec ça!!! mais elle a tendance à avoir plus de bugs que l'ingénieur qui a été fait professionnellement depuis 20 ans.

Troisièmement, les programmes d'ordinateur central ont tendance à avoir moins d'interaction avec leurs voisins. Sous Windows, par exemple, une mauvaise application peut planter une à côté ou l'ensemble du système. Sur les ordinateurs centraux, ils ont généralement la mémoire segmentée si tout ce qu'il peut tomber en panne est lui-même. Compte tenu des tonnes de choses en cours d'exécution sur votre système de bureau typique de toutes sortes de sources peu fiables, il a tendance à faire un programme squameuse dans une certaine mesure.

La maturité est certainement un facteur. Un programme de traitement de carte de crédit COBOL qui a été écrit il y a 20 ans et a été affiné encore et pour éliminer les insectes est moins susceptible d'avoir un problème qu'une version 0.1 de tout programme. Bien sûr, il y a la question que ces anciens programmes réécrits fois infini finissent généralement par code spaghetti qui est presque impossible à maintenir.

Comme quoi que ce soit, cela dépend surtout du programmeur (s) et leur méthodologie. Ont-ils faire des tests unitaires? Est-ce qu'ils documentent et d'écrire un code propre? Ont-ils tout simplement Slop-and-drop code dans le compilateur pour voir s'il y a des bugs (en espérant que le compilateur peut les attraper tous)?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top