메인 프레임 응용 프로그램에 버그가없는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1503990

  •  19-09-2019
  •  | 
  •  

문제

오래된 아이언이 견고한 소프트웨어 인 것 같습니다. 왜 그런 겁니까? 소프트웨어가 너무 성숙하여 모든 버그가 해결 되었기 때문입니까? 아니면 사람들이 버그에 익숙해 져서 그들을 인식하지 못하고 그들을 돌아 다니는 것입니까? 소프트웨어 사양은 첫날부터 완벽했으며 소프트웨어가 작성되면 모든 것이 작동 했습니까? 나는 우리가 메인 프레임 컴퓨팅 일에서 어떻게 왔는지 이해하려고 노력하고 있습니다.

도움이 되었습니까?

해결책

왜 지구상에서 버그가 없다고 생각합니까?

IBM은 a 대단한 버그보고 및 해상도 (PMR, APAR 및 PTF)에 대한 인프라를 지원합니다.

수년 동안 만지지 않은 메인 프레임 소프트웨어는 확실히 잘 이해 될 것이며 (적어도 특유의 측면에서) 고정되거나 해결 된 많은 버그를 가졌을 것입니다. 오늘날 개발중인 모든 새로운 것들은 실제로 GA (일반 가용성)에서 최소한 GA + 36 개월까지 특정 수의 버그 및 패치를 계획합니다. 사실, IBM의 광산 전 보스는 계획된 버그에 대한 수치를 선로 제공 해야하는 데 사용되었습니다. "우리는 아닙니다. 계획 버그가 있습니다 ".

Mainframe은 대부분의 데스크탑 하드웨어 및 소프트웨어가 열망 할 수있는 것 이상으로 RAS 원칙 (신뢰성, 가용성 및 서비스 가능성)을지지합니다. 물론 내 의견 일뿐입니다.

IBM이 개발주기를 진행함에 따라 버그 수정 비용이 크게 증가한다는 것을 너무 잘 알고 있기 때문입니다. 그리고 평판.

버그가없는 소프트웨어를 공개하는 데 많은 노력과 비용이 소비되지만 항상 제대로 얻지는 못합니다.

다른 팁

메인 프레임 소프트웨어에는 버그가없고 기능 만 있습니다.

메인 프레임 앱에서 작업했습니다. 이전 앱에는 많은 버그가 없었기 때문에 버그가 많지 않았습니다. 우리는 수천 줄의 Fortran 라인이 아니라면 수백 줄을 썼습니다. 그러나 우리가 카드 1의 12-26 열에 하나의 값을 넣어 입력을 얻은 프로그램에서 나왔을 때, 카드 2의 1-5 열 등의 다른 값은 대화식 ISPF 화면이나 빛에서 입력 한 것들에 이르기까지 Calcomp 1012 플로터 또는 Tektronix 4107 터미널의 펜 및 출력으로 버그 수가 증가했습니다.

메인 프레임 소프트웨어에 많은 버그가 있으므로 영향을받는 비교적 소규모 개발자 그룹으로 인해 많이 게시되지 않았습니다. 메인 프레임 개발을하는 사람에게 매일 얼마나 많은 사람들이 보는지 물어보십시오!

나는 큰 철 주 프레임에서 디버거를 사용하고 코어 덤프를 분석하는 법을 배웠습니다. 그들이 버그 때문에 나온 것을 믿으십시오. 당신은 단지 평범한 잘못입니다.

그러나 메인 프레임 아키텍처는 높은 응력 하에서 안정성을 위해 설계되었으므로 (메인 프레임 시스템이 아닌 것과 비교할 때) 아마도 그런 식으로 더 좋다고 주장 할 수 있습니다. 그러나 코드 현명한가? Nah Bug가 아직 거기에 있습니다 ...

Mainframe Application Software에 대한 나의 경험 (운영 체제와는 달리)은 예전이 아니지만, 대부분의 응용 프로그램은 논리적으로 매우 간단한 배치 응용 프로그램이라는 점입니다.

a) 입력 파일을 읽으십시오
b) 각 레코드를 처리하십시오 (대담한 느낌이 드는 경우 데이터베이스 업데이트)
c) 출력 파일을 작성하십시오

걱정할 사용자 입력 이벤트, 자격을 갖춘 운영자 팀이 실행될 때 작업을 모니터링 할 수있는 팀, 외부 시스템과의 상호 작용 등.

이제 비즈니스 논리는 복잡 할 수 있습니다 (특히 COBOL 68로 작성되었고 데이터베이스가 관계형이 아닌 경우). 그러나 그것이 집중해야 할 전부라면 신뢰할 수있는 소프트웨어를 만드는 것이 더 쉽습니다.

나는 메인 프레임 스스로 소프트웨어에서 일한 적이 없지만 아빠는 1970 년대에 코볼 프로그래머였습니다.

그 당시 소프트웨어를 작성할 때 버그를 찾는 것은 소스 코드를 컴파일하고 오류 메시지를 보는 것만 큼 간단하지 않았습니다. 컴파일러가 귀하를 돌려 주거나 프로그램을 실행하고 잘못하고있는 일을 살펴 보는 것입니다. 타이피스트는 프로그램을 펀치 카드에 펀칭 해야하는 다음 컴퓨터에 읽히고 프로그램 결과를 인쇄 할 것입니다.

아빠는 언젠가 누군가가 종이 상자로 가득 찬 카트와 함께 와서 그가 일하는 방 문 옆에 놓았다고 말했습니다. 그는 "그게 뭐야?!"라고 물었고, 그 남자는 그에게 "그것이 당신의 프로그램의 출력"이라고 말했다. 아빠는 실수를 저지르고 프로그램이 나무 전체를 사용할 수있는 종이 더미에 엄청난 양의 횡설수설을 인쇄하게했습니다.

당신은 당신의 실수로부터 그렇게 빨리 배웁니다 ...

오, 그들은 확실히 버그가 있습니다. 더 재미있는 예를 보려면 thedailywtf.com을 참조하십시오. 즉, 오늘날보고있는 대부분의 "메인 프레임"응용 프로그램은 30 년 동안 모든 꼬임을 해결하는 데 30 년이 걸렸으므로 지난 몇 년 동안 생성 된 대부분의 응용 프로그램에 비해 약간의 이점이 있습니다.

메인 프레임에 대한 경험은 없지만, 그것이 당신이 만든 첫 번째 요점이라고 생각합니다. 소프트웨어는 수십 년 동안 주변에있었습니다. 대부분의 나머지 버그는 해결되었습니다.

게다가, y2k와 같은 fiascos를 잊지 마십시오. 사람들이 우연히 발견 한 모든 버그는 해결되었으며 20 년 동안 대부분의 상황은 아마도 발생했을 것입니다. 하지만 가끔씩 새로운 상황 하다 20 년 된 소프트웨어조차도 작동을 멈추게합니다.

(이것의 또 다른 흥미로운 예는 BSD 유닉스에서 발견 된 버그입니다. 1 년 전 정도 전에 발견되었으며, 아무도 달리지 않고 20 년이 걸렸습니다).

프로그래밍은 선택된 엔지니어 만 작동 할 수있는 고급 분야 일 뿐이라고 생각합니다. 이제 프로그래밍의 세계는 모든 측면에서 진입 장벽이 낮아 훨씬 더 커집니다.

나는 그것이 몇 가지라고 생각합니다. 첫째, 픽스-버그 리 컴파일의주기는 일반적으로 메인 프레임에서 더 비싸다는 것입니다. 이것은 프로그래머가 단지 코드를 경사하고 "작동하는지 확인"할 수 없다는 것을 의미했습니다. 헤드 컴파일 및 런타임 시뮬레이션을 수행하면 컴파일러가 포착하는 것보다 더 많은 버그를 발견 할 수 있습니다.

둘째, 모든 사람과 그들의 형제는 "프로그래머"가 아니 었습니다. 그들은 보통 고도로 훈련 된 전문가였습니다. 이제 프로그램은 고등학교 졸업장으로 지하실에 앉아있는 사람들에게서 나옵니다. 그것에 아무런 문제가 없습니다 !!! 그러나 엔지니어가 20 년 동안 전문적으로해온 엔지니어가 더 많은 버그를 갖는 경향이 있습니다.

셋째, 메인 프레임 프로그램은 이웃과의 상호 작용이 적은 경향이 있습니다. 예를 들어 Windows에서는 잘못된 앱이 옆에있는 앱 또는 전체 시스템에 충돌 할 수 있습니다. 메인 프레임에서는 일반적으로 세그먼트 메모리가 있으므로 충돌 할 수있는 모든 것이 그 자체입니다. 모든 종류의 소수의 신뢰할 수있는 출처에서 일반적인 데스크탑 시스템에서 실행되는 수많은 것들을 감안할 때 어느 정도의 프로그램을 어느 정도 플라크로 만드는 경향이 있습니다.

성숙은 분명히 요인입니다. 20 년 전에 작성되었고 버그를 제거하기 위해 계속해서 개선 된 COBOL 신용 카드 처리 프로그램은 0.1 버전의 프로그램보다 문제가 발생할 가능성이 적습니다. 물론,이 오래된 재 작성 된 무한대 프로그램이 일반적으로 유지하기가 거의 불가능한 스파게티 코드가되는 문제가 있습니다.

무엇이든, 그것은 대부분 프로그래머와 그들의 방법론에 달려 있습니다. 그들은 단위 테스트를합니까? 깨끗한 코드를 문서화하고 작성합니까? 그들은 컴파일러로 코드를 경사면으로, 버그가 있는지 확인해야합니까 (컴파일러가 모두 잡을 수 있기를 바라고 있습니까?)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top