2009-10-01 16 views
11

Có vẻ như sắt cũ là phần mềm đá rắn. Tại sao vậy? Có phải vì phần mềm này quá chín muồi, rằng tất cả các lỗi đã được giải quyết? Hay là bởi vì mọi người đã quen với những lỗi mà họ thậm chí không nhận ra chúng và làm việc xung quanh chúng? Các thông số phần mềm hoàn hảo từ ngày đầu tiên và một khi phần mềm đã được viết, mọi thứ chỉ hoạt động? Tôi đang cố gắng để hiểu làm thế nào chúng tôi đã đến từ những ngày tính toán máy tính lớn mà tất cả mọi người bây giờ espouses như chỉ làm việc để cảm thấy rằng TDD bây giờ là con đường để đi.Tại sao các ứng dụng máy tính lớn không có lỗi?

Trả lời

24

Tại sao bạn nghĩ chúng không có lỗi?

IBM có cơ sở hạ tầng hỗ trợ rộng lớn để báo cáo và giải quyết lỗi (PMR, APAR và PTF), được sử dụng nhiều.

Phần mềm máy tính lớn chưa được chạm vào trong nhiều năm chắc chắn sẽ được hiểu rõ (ít nhất là về tính đồng nhất) và có thể sẽ có nhiều lỗi cố định hoặc làm việc xung quanh. Tất cả các công cụ mới được phát triển ngày nay thực sự lên kế hoạch cho một số lỗi và bản vá lỗi nhất định từ GA (tính khả dụng chung) đến ít nhất GA + 36 tháng. Trong thực tế, một ông chủ cũ của tôi tại IBM từng sử dụng baulk để buộc phải cung cấp số liệu cho các lỗi đã lên kế hoạch với dòng: "Chúng tôi không phải là lập kế hoạch để có bất kỳ lỗi nào".

Các mainframe espouses nguyên tắc RAS (độ tin cậy, tính khả dụng và bảo trì) xa hơn những gì hầu hết các phần cứng máy tính để bàn và phần mềm nào có thể mong muốn - đó là chỉ là ý kiến ​​của tôi tất nhiên, nhưng tôi đúng :-)

Đó là bởi vì IBM biết rõ rằng chi phí sửa lỗi tăng rất nhiều khi bạn di chuyển qua chu kỳ phát triển - rẻ hơn rất nhiều để sửa lỗi trong thử nghiệm đơn vị hơn là sửa lỗi trong sản xuất, cả về số tiền uy tín.

Có rất nhiều nỗ lực và chi phí được chi tiêu chỉ phát hành phần mềm không có lỗi nhưng ngay cả khi họ không nhận được nó đúng lúc.

+6

Nó chắc chắn không phải luôn luôn là trường hợp mà phần mềm máy tính lớn cũ đã không được xúc động cũng được hiểu rõ. Nó có nhiều khả năng là nó hoàn toàn bị lãng quên và rằng các nhà quản lý thức dậy với mồ hôi lạnh tự hỏi điều gì sẽ xảy ra nếu một trong những chương trình cũ mà không bao giờ phá vỡ abended. Cảm ơn chúa tôi làm việc trên phần mềm windows. Không có gì làm việc đủ lâu để quên đi !!! – Modan

+1

@Modan, * về mặt khả năng của nó *. * Nội dung * của nó có thể không hiểu được (nguồn thậm chí có thể biến mất) nhưng, nếu nó không có ý định trong hai mươi năm qua với tất cả dữ liệu rác, nó sẽ phải chịu trong thời gian đó, bắt đầu ngày mai. Và nếu nó đã được dự định, bạn sẽ tìm thấy một cách giải quyết khác hoặc thay thế nó. – paxdiablo

0

Ồ, chắc chắn chúng có lỗi - xem thedailywtf.com để biết thêm một số ví dụ giải trí khác. Điều đó nói rằng, hầu hết các ứng dụng "máy tính lớn" mà người ta thấy ngày nay đã có 30 năm để có được tất cả các kinks làm việc, vì vậy họ có một chút lợi thế so với hầu hết các ứng dụng được tạo ra trong vài năm qua.

+0

Làm thế nào để tất cả các ứng dụng máy tính lớn mới có được các kinks của họ hoạt động? –

+0

@JoeZitzelberger: chúng không tạo ra những cái mới, thường chỉ gói các giao diện EDI cũ trong một số loại ngăn xếp dịch vụ web. Điều đó và có lẽ không phải là một ứng dụng không tầm thường mà không có một lỗi trong sự tồn tại. –

+1

Những tin đồn về cái chết của nền tảng ứng dụng MVS/OS390/ZOS-CICS/TS-COBOL đã được lưu hành miễn là những tin đồn về cái chết của máy tính Apple và nền tảng thích hợp của họ. Có nhiều phát triển mới trong thế giới máy tính lớn. Xin lỗi nếu bình luận ban đầu không nhỏ giọt với đủ mỉa mai để được công nhận. –

11

Không có lỗi trong phần mềm khung chính, chỉ các tính năng.

+5

trái với các ứng dụng phổ biến trên máy tính để bàn, có các tính năng * không có giấy tờ. – voyager

+3

Sử dụng ưu tiên wiki cộng đồng. Làm tốt. – Kobi

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, hãy để lại nhận xét bên dưới bài đăng của họ. –

0

Trong khi tôi không có kinh nghiệm với các khung hình chính, tôi đoán đó là điểm đầu tiên bạn thực hiện: phần mềm đã tồn tại trong nhiều thập kỷ. Hầu hết các lỗi còn lại sẽ được giải quyết.

Ngoài ra, đừng quên các fiascos như Y2K. Tất cả những lỗi mà mọi người vấp phải đã được giải quyết, và trong 20 năm hầu hết các tình huống có thể sẽ xảy ra. Tuy nhiên, thỉnh thoảng, một tình huống mới không xoay xở để làm cho phần mềm cũ 20 tuổi ngừng hoạt động.

(Một ví dụ thú vị khác về điều này là lỗi được tìm thấy trong, tôi tin rằng, BSD Unix. Nó đã được tìm thấy một năm hoặc lâu hơn trước đây, và nó đã được khoảng 20 năm mà không có ai chạy vào nó).

0

Tôi nghĩ rằng lập trình chỉ là một trường nâng cao mà chỉ các kỹ sư được chọn mới có thể làm việc trong đó. Thế giới lập trình bây giờ là lớn hơn nhiều với các rào cản gia nhập thấp hơn trong mọi khía cạnh.

+0

Bởi vì các lập trình viên COBOL không có đào tạo chính quy nào có rào cản gia nhập cao? Thông thường nó là một khuyến mãi từ chạy các phòng thư ... –

5

Có rất nhiều lỗi trên phần mềm máy tính lớn, chúng không được công bố nhiều do nhóm các nhà phát triển tương đối nhỏ bị ảnh hưởng. Chỉ cần hỏi một người nào đó phát triển máy tính lớn có bao nhiêu ABENDS họ thấy trên cơ sở hàng ngày!

+0

ABEND! Tôi vẫn có vẻ gọi nó là theo thời gian và 0C4 –

+0

// SYSABEND DD SYSOUT = A - bắt đầu một ngày rất dài. –

+1

Nó không phải là nhà phát triển bị ảnh hưởng, đó là khách hàng. Và số người bị ảnh hưởng bởi một lỗi trong phần mềm máy tính lớn có thể là * lớn * - chẳng hạn như một cuộc khủng hoảng ngân hàng gần đây ở Úc gần đây, nơi không có thông tin tài khoản trên mạng và nhiều giao dịch trực tuyến bị trì hoãn trong nhiều ngày. Bạn nghĩ gì ở phần cuối của tất cả cơ sở hạ tầng ngân hàng trực tuyến, SQL Server trên một vài máy tính? :-) – paxdiablo

2

Tôi đã học cách sử dụng các trình gỡ rối và phân tích các bãi lõi trên các khung chính lớn bằng sắt. Tôi tin tưởng họ chỉ đến vì lỗi. Bạn chỉ đơn giản là sai.

Tuy nhiên các kiến ​​trúc máy tính lớn đã được thiết kế để ổn định dưới áp lực cao (so với các hệ thống máy tính không chính) nên có thể bạn cho rằng chúng tốt hơn theo cách đó. Nhưng mã khôn ngoan? Lỗi Nah vẫn còn ở đó ...

6

Tôi đã từng làm việc trên các ứng dụng máy tính lớn. Các ứng dụng trước đó không có nhiều lỗi vì chúng không hoạt động nhiều. Chúng tôi đã viết hàng trăm nếu không phải hàng ngàn dòng FORTRAN để làm những gì bạn muốn làm với một vài công thức trong Excel bây giờ. Nhưng khi chúng tôi đi từ các chương trình có đầu vào bằng cách đặt một giá trị trong các cột 12-26 của thẻ 1 và một giá trị khác trong cột 1-5 của thẻ 2, v.v ... cho những người đã nhập từ màn hình ISPF tương tác hoặc ánh sáng bút và đầu ra trên máy vẽ Calcomp 1012 hoặc thiết bị đầu cuối Tektronix 4107, số lượng lỗi tăng lên.

0

Tôi nghĩ rằng đó là một vài điều. Đầu tiên là chu kỳ sửa lỗi-sửa-lỗi thường đắt hơn trong các khung hình chính. Điều này có nghĩa là các lập trình viên không thể chỉ slop ra mã và "xem nếu nó hoạt động". Bằng cách thực hiện các mô phỏng biên dịch và trong thời gian chạy, bạn có thể phát hiện nhiều lỗi hơn để cho trình biên dịch bắt chúng.

Thứ hai, mọi người và anh trai của họ không phải là "lập trình viên". Họ thường là những chuyên gia được đào tạo bài bản. Bây giờ các chương trình đến từ những người ngồi trong tầng hầm của họ với bằng trung học. Không có gì sai với điều đó!!! nhưng nó có xu hướng có nhiều lỗi hơn mà kỹ sư đã làm nó một cách chuyên nghiệp trong 20 năm.

Các chương trình máy tính lớn thứ ba có xu hướng ít tương tác với người hàng xóm của họ. Trong Windows, ví dụ, một ứng dụng xấu có thể làm hỏng một bên cạnh nó hoặc toàn bộ hệ thống. Trên các máy tính lớn, chúng thường có bộ nhớ phân đoạn nên tất cả nó có thể bị hỏng. Với hàng tấn những thứ đang chạy trên hệ thống máy tính để bàn thông thường của bạn từ tất cả các loại nguồn đáng tin cậy, nó có xu hướng làm cho bất kỳ chương trình nào bị bong tróc ở mức độ nào đó.

Độ trưởng thành chắc chắn là một yếu tố. Một chương trình xử lý thẻ tín dụng COBOL đã được viết cách đây 20 năm và đã được tinh chỉnh hơn và hơn để loại bỏ lỗi ít có khả năng có vấn đề hơn phiên bản 0.1 của bất kỳ chương trình nào. Tất nhiên, có vấn đề là những chương trình thời gian vô hạn được viết lại cũ này thường kết thúc mã spaghetti gần như không thể duy trì được.

Giống như mọi thứ, nó phụ thuộc chủ yếu vào (các) lập trình viên và phương pháp luận của họ. Họ có làm thử nghiệm đơn vị không? Họ có ghi lại và viết mã sạch không? Do họ chỉ slop-và-thả mã vào trình biên dịch để xem nếu có bất kỳ lỗi (hy vọng trình biên dịch có thể bắt tất cả)?

2

Kinh nghiệm của tôi với phần mềm ứng dụng máy tính lớn (như trái ngược với các hệ điều hành) là khá trong ngày, nhưng hồi ức của tôi là phần lớn các ứng dụng là ứng dụng hàng loạt mà logic, bạn rất đơn giản:

a) đọc một tập tin đầu vào
b) Quy trình mỗi bản ghi (nếu bạn đang cảm thấy táo bạo, cập nhật cơ sở dữ liệu)
c) Viết một tập tin đầu ra

Không có sự kiện người dùng nhập vào phải lo lắng về, một nhóm các nhà khai thác đủ điều kiện để giám sát công việc khi nó chạy, ít tương tác với các hệ thống bên ngoài, v.v.Bây giờ logic nghiệp vụ có thể phức tạp (đặc biệt nếu nó được viết bằng COBOL 68 và cơ sở dữ liệu không quan hệ) nhưng nếu đó là tất cả những gì bạn phải tập trung vào, thì việc tạo phần mềm đáng tin cậy trở nên dễ dàng hơn.

+0

"lô" có ý nghĩa khác nhau trong các hệ thống lớn.Xử lý hàng loạt (phần nhỏ) được điều chỉnh để cung cấp thời gian CPU tối đa hoặc được xác định cho một công việc so với bị gián đoạn và được lên lịch lại giống như những gì có thể xảy ra trong một hệ thống Unix chung. 3 bước bạn đã cung cấp ở trên giống như cách nó hoạt động trên mọi hệ thống cùng một lúc. Các khung hình chính ngày nay chỉ làm mọi thứ mà chúng ta đang làm ở nơi khác ngày hôm nay. – Xailor

1

Tôi chưa bao giờ làm việc trên phần mềm cho mainframe, nhưng bố tôi là lập trình viên COBOL vào những năm 1970.

Khi bạn viết phần mềm trong những ngày đó, việc tìm lỗi không đơn giản như biên dịch mã nguồn của bạn và xem các thông báo lỗi trình biên dịch phản hồi lại hoặc chạy chương trình của bạn và nhìn vào những gì nó đang làm sai. Một người đánh máy đã phải đấm chương trình vào thẻ đục lỗ, sau đó sẽ được đọc vào máy tính, mà sẽ in ra kết quả của chương trình của bạn.

Bố tôi nói với tôi rằng một ngày nào đó ai đó đến với một giỏ đầy các hộp giấy và đặt chúng bên cạnh cánh cửa của căn phòng nơi ông đang làm việc. Anh ta hỏi "Cái gì thế ?!", và anh chàng nói với anh ta "Đó là đầu ra của chương trình của bạn". Cha tôi đã phạm sai lầm khiến chương trình in ra một số lượng khổng lồ vô nghĩa trên một chồng giấy có thể đã sử dụng hết cả một cái cây.

Bạn học hỏi từ những sai lầm của mình một cách nhanh chóng theo cách đó ...