เหตุใดซอฟต์แวร์จึงไม่น่าเชื่อถือเท่ากับรถยนต์ [ปิด]


65

ฉันมีผู้ใช้คนหนึ่งถามคำถามนี้กับฉัน เรารู้ว่ารถยนต์พังลง แต่นั่นเป็นเพราะบางสิ่งบางอย่างที่มีอยู่จริง (เว้นแต่ว่าเกี่ยวข้องกับซอฟต์แวร์!)

ฉันพยายามที่จะตอบว่าซอฟต์แวร์เป็นอุตสาหกรรมที่มีอายุน้อยกว่ามาก แต่ผู้ใช้โต้กลับกับ "อุตสาหกรรมยานยนต์ไม่เสถียรและน่าเชื่อถือมากกว่าคนน้อยกว่าหรือไม่"

ฉันพยายามตอบด้วยว่าซอฟต์แวร์มีความซับซ้อนมากขึ้น แต่ผู้ใช้ตอบโต้ว่ามีชิ้นส่วนหลายพันชิ้นที่ทำขึ้นรถ คนที่ออกแบบและสร้างรถยนต์มักจะรู้จักองค์ประกอบของพวกเขาเป็นอย่างดี แต่พวกเขายังคงทำงานร่วมกันเป็นผลสุดท้าย

ดังนั้นทำไมซอฟต์แวร์จึงไม่น่าเชื่อถือเท่ากับรถยนต์


29
รถคันไหน บางคนมีความน่าเชื่อถือมากกว่าคนอื่น ๆ
Zoot

244
หากมีใครบางคนกำลังประกอบรถเมื่อเจ้านายของพวกเขาเข้ามาแล้วบอกว่า "โอ้เฮ้ลูกค้าต้องการให้เราติดเครื่องยนต์ไอพ่นกับมันคุณสามารถทำมันได้ในสองสามวันหรือไม่" รถยนต์ก็ไม่น่าไว้ใจเช่นกัน .
อดัมเลียร์

28
ซอฟต์แวร์มีความน่าเชื่อถือ มันเป็นเพียงซอฟต์แวร์ระดับต้นขนาดใหญ่ที่ไม่ใช่ คุณเคยเห็นทีวีพังไหม? ฉันก็ไม่เหมือนกัน.
zneak

19
มีกฎหมายที่บังคับใช้การเรียนรู้การขับรถก่อนที่จะได้รับอนุญาตให้ขับรถยนต์ นอกจากนี้ยังมีหลักสูตรจำนวนมากเกี่ยวกับวิธีการขับรถที่มีเป้าหมายอยู่ที่การศึกษาต่ำกว่าเพื่อให้พวกเขาไม่ผิดพลาด ไม่มีโปรแกรมดังกล่าวสำหรับการเรียนรู้ที่จะใช้คอมพิวเตอร์และเป็นเช่นนั้นการล่มของประชากรที่มีการศึกษาต่ำที่มีความสม่ำเสมอและโทษพวกเขาในโปรแกรมเมอร์
zzzzBov

14
เพียงเปรียบเทียบจำนวนการบาดเจ็บที่เกิดจากซอฟต์แวร์และรถยนต์และคุณจะเห็นว่าซอฟต์แวร์นั้นมีความน่าเชื่อถือมากกว่ารถยนต์
mouviciel

คำตอบ:


183

หลักฐานของคำถามของคุณไม่ถูกต้อง: ซอฟต์แวร์ไม่ "น่าเชื่อถือน้อย" กว่ารถยนต์ มีอุปกรณ์หลายพันล้านรายการที่ใช้งานซอฟต์แวร์แบบฝังตัว 24x7 เป็นเวลาหลายปีโดยไม่มีปัญหา เฮคบางส่วนอยู่ในรถยนต์และควบคุม / ตรวจสอบเครื่องยนต์ ดังนั้นซอฟต์แวร์จะมีความน่าเชื่อถือน้อยกว่ารถยนต์ได้อย่างไรหากรถยนต์เองพึ่งพาซอฟต์แวร์


9
+1 ด้วยซอฟต์แวร์สามารถเชื่อถือได้อย่างสมบูรณ์แบบ (ในแง่คณิตศาสตร์) ในขณะที่อุปกรณ์เครื่องกลไม่สามารถเป็นได้ (เนื่องจากความเชื่อมั่นของความน่าเชื่อถือที่นี่แตกต่างกัน - นั่นคือเกี่ยวกับการให้การรับประกันการปฏิบัติที่ทุกอย่างจะทำงานได้ สวมใส่ในบางช่วงเวลา)
mlvljr

9
+1 สำหรับการชี้ให้เห็นข้อบกพร่องพื้นฐานในคำถาม
Gary Rowe

1
ฉันจะเพิ่มที่ฉันไม่เคยเห็นรถในพื้นที่ในขณะที่ฉันได้เห็นซอฟต์แวร์ขึ้นที่นั่น ...
Matthieu เอ็ม

5
@Rei Miyasaka: อย่าดูเบาระดับความซับซ้อนในซอฟต์แวร์ฝังตัว ;)
Mchl

3
@ Matthieu M. - คุณไม่เคยเห็น Apollo Lunar Rover ใช่ไหม?
JeffO

115

ฉันออกแบบซอฟต์แวร์และชิ้นส่วนเชิงกล

มันซับซ้อน

เนื่องจากมี "ส่วน" นับล้านในซอฟต์แวร์ที่ทันสมัย

ชิ้นส่วนซอฟต์แวร์มีความซับซ้อนและมีจำนวนมาก ชิ้นส่วนที่ไม่เคลื่อนที่เชิงกลไม่มีสถานะ

ชิ้นส่วนที่เคลื่อนที่ด้วยกลไกมีตำแหน่ง (ตัวแปรเดียว)

โปรแกรมที่ใช้งานและใช้ RAM ขนาด 1Mb จะมีสถานะเป็นล้านไบต์ นั่นเป็นสถานะที่ไกลเกินกว่าระบบกลไกทั่วไป

จะมีการรวมกันของรัฐที่ไม่เคยได้รับการทดสอบเพราะพวกเขาเกิดขึ้นน้อยมาก ในระบบกลไก (เช่นรถยนต์) ง่ายต่อการตรวจสอบว่าชิ้นส่วนกลไกไม่ได้ชนกันระหว่างการใช้งาน ซอฟต์แวร์ CAD เชิงกลที่ฉันใช้ในที่ทำงานทำโดยอัตโนมัติ

หากคุณสร้างเครื่องจักรจากชิ้นส่วนที่มองไม่เห็นและไม่สามารถสัมผัสได้และมีชิ้นส่วนที่เคลื่อนไหวนับล้านชิ้นซึ่งพลาดไปอีกชิ้นหนึ่งมันจะเป็นเหมือนโปรแกรมง่ายๆ

แม้แต่ "hello world" ก็ยังทำงานบนระบบปฏิบัติการ ระบบ 8 บิตเก่าและระบบปฏิบัติการมินิคอมพิวเตอร์น่าเชื่อถือมากเพราะใช้งานง่าย

สิ่งต่าง ๆ เช่น DLLs และไลบรารีที่แชร์ถูกแทนที่ด้วยเป็นส่วนหนึ่งของการปรับปรุงไวรัสหรือการติดตั้งซอฟต์แวร์จากนั้นโปรแกรมที่น่าสนใจไม่ทำงาน บิตเช่นการเปลี่ยนยางในรถของคุณเป็นยางรถจักรยาน สถานะขอบบางอย่างของฟังก์ชันไลบรารีรบกวน (ไม่ดำเนินการตามที่โปรแกรมคาดไว้)

โปรแกรมที่เขียนด้วยภาษาเช่น Java ที่ไม่อนุญาตให้มีการโต้ตอบระหว่างวัตถุ (การใช้ตัวชี้ซ้ำ, ขอบเขตขอบเขตล้น) โดยทั่วไปนั้นค่อนข้างน่าเชื่อถือเมื่อคุณให้โปรแกรมทำงาน
เมื่อคุณใช้ระบบปฏิบัติการที่มีไลบรารีแบบสแตติกเมื่อโปรแกรมทำงานก็จะทำงานต่อไป (แต่จะยังคงมีเงื่อนไขขอบจำนวนมากขึ้นอยู่กับขนาดสถานะของมัน)

Dave Parnas เขียนเกี่ยวกับความน่าเชื่อถือของซอฟต์แวร์ด้วยการทำให้สถานะของโปรแกรมเล็กลง พวกการเขียนโปรแกรมฟังก์ชั่นที่เข้มงวดกำลังทำสิ่งเดียวกันโดยการบังคับให้มอบหมายคงเดียว


12
+1 ลองนึกภาพ "คอมพิวเตอร์เชิงกล" ที่มีเฟือง ฯลฯ แทนที่จะเป็นลูปและตัวแปร - มันซับซ้อนแค่ไหน (และไม่น่าเชื่อถือ) ว่ามันควรจะ "คัดลอก" โปรแกรม KLOC 20-40 -... หรือไม่ และให้เราจำไว้ว่าทำไมจึงเป็นไปไม่ได้ที่จะสร้างคอมพิวเตอร์เชิงกลที่ใช้งานได้
mlvljr

3
+1 สำหรับการกล่าวถึงการอัปเดตไวรัสซึ่งฉันคิดว่าเป็นคำสละสลวยสำหรับสิ่งนั้น - ระบบปฏิบัติการ - ซึ่ง - ชื่อ - ไม่ - จะ - พูด
ตรินิแดด

1
และการกล่าวถึง Mr. Parnas ในบริบทของความน่าเชื่อถือของซอฟต์แวร์นั้นน่าจะเป็นผลมาจากการเพิ่มขึ้นของตัวมันเอง
mlvljr

6
คุณได้ผสมการใช้อะโพสโทรฟีในเกือบทุกกรณี ส่วนการเคลื่อนย้ายเครื่องจักรกลมีของตำแหน่ง (ไม่ใช่ "มัน") มันซับซ้อน (ไม่ใช่ "มัน") สิ่งที่ต้องการDLLs (ไม่ใช่ "DLL's") ดูเพิ่มเติมได้ที่: english.stackexchange.com
Ashe

2
mlvljr: ค้นหา Charles Babbage และเครื่องมือวิเคราะห์ของเขา: en.wikipedia.org/wiki/Analytical_engine
Mchl

56

มันเป็นเรื่องของการเลือกของผู้บริโภค

หากผู้บริโภคต้องการให้ซอฟต์แวร์เชื่อถือได้เหมือนกับ Honda Civic ของฉัน (ซึ่งต่างจาก Ford Maverick รุ่นเก่าของฉัน) ก็คงจะเป็นเช่นนั้น บางองค์กรต้องการซอฟต์แวร์ที่มีความน่าเชื่อถือและโดยทั่วไปจะใช้ซอฟต์แวร์ฝังตัวในบางครั้งเพื่อความปลอดภัยที่สำคัญเช่นภารกิจด้านอวกาศและการควบคุมการจราจรทางอากาศ ซอฟต์แวร์ยังไม่สมบูรณ์ แต่ไม่มีทั้งรถยนต์

อย่างไรก็ตามลูกค้าต้องการคุณสมบัติอื่น ๆ ในซอฟต์แวร์ของพวกเขาและส่วนใหญ่ไม่เต็มใจที่จะจ่ายสำหรับซอฟต์แวร์ที่อาจจะทำงานได้น้อยลงมีราคาแพงกว่าและแน่นอนว่าจะจัดส่งในภายหลังเพราะมีความน่าเชื่อถือมากกว่า


4
+1 สำหรับคำตอบนี้ - ไม่มีคำตอบอื่นใดอีกเลยแม้แต่เรื่องเดียว ถ้าคนได้รับการดูแลไม่ดีพอเกี่ยวกับซอฟต์แวร์การเป็นที่เชื่อถือได้เป็นคัน (มาก แต่ที่เป็น) มันจะเป็น แต่เมื่อโปรแกรมเกิดปัญหาคุณรีบูตเครื่องคอมพิวเตอร์ของคุณ - เมื่อรถชน OTOH ...
ไซคลอปส์

@ ไซคลอปส์ฉันเห็นด้วย แต่ฉันคิดว่ามันคุ้มค่าที่จะไตร่ตรองว่าทำไมผู้คนถึงมีความคิดเห็นที่แตกต่างกันเกี่ยวกับรถยนต์และซอฟต์แวร์ และฉันคิดว่าคำตอบหลักคือสำหรับโปรแกรมที่มีประโยชน์ต่อมนุษย์โดยเฉลี่ยมันมักจะต้องมีขนาดที่ซับซ้อนกว่าอุปกรณ์กลไกที่มีประโยชน์เช่นรถยนต์ คำตอบอื่น ๆ อีกมากมายตอบคำถามนี้ นอกจากนี้ความเสี่ยงของซอฟต์แวร์ผิดพลาดมักจะต่ำ
j_random_hacker

2
@j_random_hacker: ฉันไม่เห็นว่าผู้คนมีความคิดเห็นที่แตกต่างกันเกี่ยวกับความน่าเชื่อถือเนื่องจากความซับซ้อนที่แตกต่างกันเพราะคนส่วนใหญ่ไม่มีความคิดที่ดีเกี่ยวกับความซับซ้อนของรถยนต์หรือโปรแกรม พวกเขามีความคาดหวังที่แตกต่างกันเนื่องจากซอฟต์แวร์มีปัญหามากกว่ารถยนต์ในปัจจุบัน พวกเขาสนใจผลที่ตามมา ความล้มเหลวของรถมีแนวโน้มที่จะติดคนที่พวกเขาไม่ต้องการที่จะไม่สามารถไปได้ทุกที่และมีแนวโน้มที่จะเสียค่าใช้จ่ายเงินร้ายแรงในการรักษา มันไม่สะดวกอยู่เสมอและอาจเป็นอันตรายถึงชีวิตได้ สำหรับคนส่วนใหญ่ความล้มเหลวของซอฟต์แวร์หมายถึงการทำงานล้มเหลว
David Thornley

25

มีหลายพันชิ้นส่วนที่ทำขึ้นเป็นรถยนต์

หากเพียงคอมพิวเตอร์ (และซอฟต์แวร์ที่เกี่ยวข้อง) นั้นง่าย

คอมพิวเตอร์มีหน่วยความจำกิกะไบต์อะไร รองเท้าแตะพันล้านชุด? ดิสก์เทราไบต์หรือไม่? ล้านล้านของ "ชิ้นส่วนที่เคลื่อนไหว"?

ซอฟต์แวร์อาจมีการเรียกใช้รหัส 10s หรือ 1,000 หรือแต่ละบรรทัด รวมทั้งการทดสอบและเครื่องมือหลายอย่าง (หรือมากกว่านั้น)

ไม่ได้อาร์กิวเมนต์ "รถยนต์มีความซับซ้อนเช่นกัน" เป็นสองชั้น ซอฟต์แวร์มีความซับซ้อนมากยิ่งกว่ารถยนต์


6
ซอฟต์แวร์ดูเรียบง่ายเพียงเพราะเราเก่งในงานของเรามากและทำให้ง่ายสำหรับคนธรรมดา :-)
Martin York

3
รถยนต์มีความซับซ้อนเกินไป
เมาริซิโอ

9
@Mauricio: ไม่เคยพูดว่าพวกเขาไม่ซับซ้อน ประเด็นก็คือว่าซอฟต์แวร์อาจมีความซับซ้อนมากกว่ารถยนต์
S.Lott

4
ซอฟต์แวร์ไม่ซับซ้อนเกินกว่ารถ ทั้งรถยนต์และซอฟต์แวร์เติบโตตามธรรมชาติในความซับซ้อนจนกว่าจะถึงขีด จำกัด ด้านนอกของสิ่งที่ผู้คนสามารถจัดการได้ คอมพิวเตอร์อาจมีองค์ประกอบหลายพันล้านชิ้น แต่หลายองค์ประกอบสามารถใช้เป็นองค์ประกอบในอุดมคติและทำงานได้ในทำนองเดียวกัน ความเรียบง่ายโดยธรรมชาตินั้นเป็นสาเหตุที่ซอฟต์แวร์เติบโตอย่างซับซ้อนมาก: มันโตขึ้นจนยากที่จะจัดการ ในขณะที่ส่วนประกอบของยานพาหนะมีองค์ประกอบที่ซับซ้อนอื่น ๆ : พวกเขาต้องจัดการกับการสึกหรอการกัดกร่อนความผันผวนของอุณหภูมิ ฯลฯ ทั้งสองอย่างนั้นมีความซับซ้อนสูงเพียงในมิติที่แตกต่างกัน
whatsisname

3
ด้วยซอฟต์แวร์มันง่ายต่อการเพิ่มซอฟต์แวร์เพิ่มเติมจากนั้นก็คือการเพิ่มส่วนประกอบเชิงกลเพิ่มเติม ในขณะที่ทั้งคู่เติบโตแบบ "อินทรีย์" แต่ซอฟต์แวร์นั้นเติบโตเร็วกว่ามาก
Jim C

20

หลักการที่ทำให้เครื่องยนต์สันดาปทำงานและส่วนประกอบทั้งหมดที่ทำขึ้นรถไม่ได้เปลี่ยนไปมากนักในศตวรรษที่ผ่านมา แน่นอนว่ามีการปรับปรุงวิวัฒนาการและรถยนต์ไฮบริด แต่องค์ประกอบพื้นฐานเหมือนกัน คุณมีเครื่องยนต์รถขับเคลื่อนและอื่น ๆ แม้แต่รถคอนเซปต์และ Bugatti Veyron ราคาแพงมากของคุณก็ถูกสร้างขึ้นด้วยโครงสร้างพื้นฐานแบบเดียวกัน ในระยะสั้นการออกแบบรถเป็นปัญหาที่รู้จักกันดี

ตรงกันข้ามกับการพัฒนาซอฟต์แวร์

  • ลูกค้าไม่รู้ว่าสิ่งที่พวกเขาต้องการเมื่อพวกเขาเริ่ม พวกเขาเริ่มพูดถึงเครื่องบินไอพ่นสุดหรู แต่เมื่อพวกเขาตระหนักถึงค่าใช้จ่ายที่พวกเขาต้องการให้คุณสร้างมันสำหรับราคาของสกู๊ตเตอร์ที่ขับเคลื่อนด้วยเท้า
  • การออกแบบรถยนต์ใช้เวลาหลายปีกว่าจะได้แนวคิดจากรถแนวคิดและอีกหลายปีกว่าจะได้รับจากการผลิต ครั้งสุดท้ายที่คุณมีซอฟต์แวร์หรู ๆ
  • ชิ้นส่วนรถยนต์เป็นชิ้นส่วนที่ทำจากโลหะ แต่ส่วนประกอบซอฟต์แวร์สามารถเปลี่ยนรูปร่างและส่วนต่อประสานได้บ่อย
  • กระบวนการผลิตแตกต่างอย่างสิ้นเชิง สำหรับรถยนต์ชิ้นส่วนเหล่านี้ผลิตในปริมาณมากและชิ้นส่วนเดียวกันนั้นถูกใช้กับยานพาหนะต่าง ๆ ด้วยซอฟต์แวร์เกือบทุกอย่างถูกประดิษฐ์ขึ้นมาด้วยมือ

กล่าวโดยย่อมีสาเหตุหลายประการที่ทำให้รถยนต์ถูกมองว่า "น่าเชื่อถือ" มากกว่าซอฟต์แวร์ ฉันเพิ่งมากับคู่


6
การแก้ไขการผลิต: การผลิตซอฟต์แวร์นั้นไม่สำคัญ สิ่งนี้ทำให้คนคิดว่าการเขียนโปรแกรมบางแง่มุมเป็นการผลิตในขณะที่การเขียนโปรแกรมเป็นการออกแบบทั้งหมด ทุกโปรแกรมเป็นการออกแบบใหม่
David Thornley

1
ทุกโปรแกรมเป็นโปรแกรมใหม่ - ยังไม่ได้รับการพิสูจน์ - ออกแบบหรือดาวน์โหลดซอฟต์แวร์ที่มีอยู่แล้วและได้รับการพิสูจน์แล้วจากห้องสมุดดิจิตอลที่เชื่อถือได้ มีขั้วสองขั้วขนาดใหญ่
S.Lott

19

รถยนต์มีความน่าเชื่อถือ ดังนั้นซอฟต์แวร์ส่วนใหญ่

แต่ ... รถยนต์ที่กำหนดเองและซอฟต์แวร์ที่กำหนดเองทั้งคู่มีปัญหา

ผู้ที่ชื่นชอบรถตัวจริงที่มีรถกล้ามเนื้อดัดแปลง 1970, tinkers, tweaks และมีการพังทลายและปัญหาโง่ ๆ ทุกประเภทที่เขาไม่เคยมีถ้าเขาทิ้งมันไว้ แต่ ... แล้วเขาจะไม่มีซุปเปอร์ชาร์จเจอร์ ...


3
nitpicking: ซอฟต์แวร์ส่วนใหญ่ (มองเห็นได้) เป็นซอฟต์แวร์ที่กำหนดเอง ดังนั้นสถานะการรับรู้ของความไม่น่าเชื่อถือทั่วไป
Javier

4
@ จาเวียร์ฉันคิดว่าซอฟต์แวร์ที่สามารถมองเห็นได้ส่วนใหญ่เป็นสิ่งนอกชั้นวางที่คุณสามารถซื้อได้ที่ร้านจำหน่ายอุปกรณ์สำนักงานหรือที่มาพร้อมกับคอมพิวเตอร์ของคุณ
Marcie

1
@ จาเวียร์: ซอฟต์แวร์ที่กำหนดเองตามคำนิยามฉันจะคิดว่าถูกออกแบบ / สร้างขึ้นสำหรับผู้ชมที่เฉพาะเจาะจง - ไม่ใช่ประชาชนทั่วไป
Steven Evers

@Marcie: ถึงแม้ว่า windows, office และ photoshop จะอยู่ทุกหนทุกแห่งทุกธุรกิจก็มีบัญชีที่กำหนดเองและระบบกระบวนการ ลองคิดดูว่าทุกเว็บไซต์จะอยู่ที่นั่นหรือไม่
Javier

3
@Javier ไม่ใช่ทุกธุรกิจ หลายคนใช้ผลิตภัณฑ์ที่ไม่ได้วางจำหน่าย
Marcie

16

เนื่องจากรถที่คุณขับได้ถูกสร้างขึ้นมาหลายครั้งกระบวนการก่อสร้างจึงได้รับการขัดเกลาจนสามารถผลิตรถคันเดียวกันในสายการผลิตซ้ำแล้วซ้ำอีก

ถ้ามันเป็นรถที่ทันสมัยที่ไม่เหมือนใครที่สร้างขึ้นตั้งแต่เริ่มต้นมันจะไม่มีที่ไหนใกล้เคียงกับความน่าเชื่อถือได้เช่นดูว่าอัตราความล้มเหลวสูงกว่าในรถแข่งสูตร 1 มากแค่ไหน เป็นเรื่องปกติที่หนึ่งหรือสองจะทำลายลงต่อการแข่งขัน

ซอฟต์แวร์ใหม่จะถูกปิดครั้งเดียวเสมอ สิ่งที่รหัสโปรแกรมเมอร์ไม่เคยได้รับรหัสจากพวกเขามาก่อน ในการรับคุณภาพที่สูงในสถานการณ์นี้ต้องใช้ต้นทุนที่ต้องห้ามสำหรับผลิตภัณฑ์ส่วนใหญ่ ซอฟต์แวร์ใหม่ที่ไม่สำคัญทุกตัวเป็นต้นแบบอย่างมีประสิทธิภาพ

นอกเหนือจากนี้เป็นหนึ่งในเหตุผลหลักที่ใช้เทคนิควิศวกรรมแบบดั้งเดิมกับวิศวกรรมซอฟต์แวร์เป็นภัยพิบัติ


1
+1 การสร้างรถยนต์ไม่เท่ากับการสร้างโปรแกรมซอฟต์แวร์ การสร้างรถยนต์นั้นเทียบเท่ากับการรันโปรแกรมซอฟต์แวร์มากกว่า การออกแบบและเก็งกำไรรถยนต์นั้นเทียบเท่ากับการสร้างโปรแกรมซอฟต์แวร์ และมีปัญหามากมายระหว่างการออกแบบรถยนต์ที่ได้รับการรีดออกไปตลอดทางเหมือนกับซอฟต์แวร์
RationalGeek

1
ฉันไม่เห็นด้วยกับข้อความนี้: "นอกจากนี้นี่เป็นหนึ่งในเหตุผลหลักที่การใช้เทคนิควิศวกรรมแบบดั้งเดิมกับวิศวกรรมซอฟต์แวร์เป็นหายนะ" การพัฒนาซอฟต์แวร์เกี่ยวข้องกับหลักการทางวิศวกรรมอย่างแน่นอน: ส่วนประกอบที่นำมาใช้ใหม่, องค์ประกอบ, การทดสอบความเครียด, การสร้างบล็อคและอื่น ๆ
Philluminati

13
  1. ผู้ผลิตรถยนต์ได้รับข้อมูลจำเพาะทั้งหมดก่อนที่จะผลิตผลิตภัณฑ์ "ขั้นสุดท้าย"
  2. ผู้ใช้รถยนต์มักจะไม่ทำสิ่งที่โง่ ๆ ที่ผู้ออกแบบไม่คาดคิด
  3. รถยนต์เป็น "อัพเดท" เพียงครั้งเดียวต่อปี (โดยทั่วไป) ในขณะที่ซอฟต์แวร์ส่วนใหญ่คาดว่าจะได้รับการปรับปรุงหลายครั้งต่อปี

ฉันไปได้ แต่เบราว์เซอร์ของฉันรู้สึกเหมือนกำลังจะพัง ...


3
ผู้ใช้รถยนต์ทำสิ่งโง่ ๆ มากมายรวมถึงสิ่งที่นักออกแบบไม่คาดคิด สิ่งนั้นมีเพียงอินพุต จำกัด และไม่มีผลลัพธ์ที่คาดหวังโดยเฉพาะสำหรับการเขียนอายไลเนอร์ในขณะขับขี่ซึ่งแตกต่างจากการอ่านหนังสือพิมพ์ในขณะขับรถ
David Thornley

10
@ David Thornley: แค่คิดว่าคนคาดหวังว่ารถจะทำงานเหมือนคอมพิวเตอร์ ... "ฉันกำลังอ่านกระดาษขณะขับรถและตอนนี้ไฟหน้าไม่ทำงานอีกต่อไปบางทีมันอาจเกี่ยวข้องกับพวงมาลัยที่ฉันเอาออกไป สร้างที่สำหรับหนังสือพิมพ์ดังนั้นฉันจึงวิ่งเข้าไปในกำแพงเข็มขัดนิรภัยปกป้องฉันได้ดี แต่มันไม่ได้ป้องกันไฟหน้า ... ";)
Guffa


1
@robertc คุณไม่สามารถออกแบบสำหรับแม้แต่ระดับของความโง่เขลาที่ ...
เกลน Solsberry

10

จริงๆแล้วมีเหตุผลง่ายๆ

ซอฟต์แวร์ที่สร้างรายได้เป็นซอฟต์แวร์ที่สร้างส่วนแบ่งทางการตลาด บ่อยครั้งที่ บริษัท ที่นำซอฟต์แวร์มาสู่ตลาดเป็นอันดับแรกจะเป็น บริษัท ที่ได้รับส่วนแบ่งการตลาดส่วนใหญ่แม้ว่าซอฟต์แวร์ของพวกเขาจะไม่ใช่ผลิตภัณฑ์ที่ดีที่สุดในตลาดของตน

ดังนั้นการมุ่งเน้นไปที่การปล่อยซอฟต์แวร์เร็วและไม่สมบูรณ์แทนที่จะเป็นหลังจากนั้นและสมบูรณ์แบบ


2
วิธีนี้ใช้ได้ผลก็ต่อเมื่อบุคคลที่ 'ดีที่สุด' จบลงด้วยความที่ไม่ดีขึ้นมาก หากพวกเขาดีขึ้นแล้วคุณจะได้รับสิ่งที่เกิดขึ้นกับ Apple ตอนนี้พวกเขามาถึงช้าด้วยเทคโนโลยีที่ล้าสมัยและยังคง blitzing สนามเพราะพวกเขา
Robert Massaioli

@ Robert: Apple เป็นโซลูชั่นแบบครบวงจร (ITunes store) ที่สมบูรณ์และฉันไม่แน่ใจว่าฉันเห็นด้วยหรือไม่ว่าเทคโนโลยีของพวกเขาล้าสมัย หากไม่ใช่สำหรับพวกเราพวกเราทุกคนอาจจะยังใช้โทรศัพท์ตัวเลื่อนเส็งเคร็งอยู่
Robert Harvey

5

ฉันชอบคำตอบส่วนใหญ่แล้ว นี่คือสปินของฉัน

ค่าใช้จ่ายสำหรับความล้มเหลวนั้นรุนแรงมากสำหรับรถยนต์มากกว่าซอฟต์แวร์

ความล้มเหลวของรถยนต์อาจทำให้เสียชีวิตได้ แม้แต่ความล้มเหลวของยานพาหนะที่คุกคามชีวิตก็แสดงถึงความไม่สะดวกที่ผู้ใช้มองเห็นได้ ความล้มเหลวของซอฟต์แวร์หมายถึง SAP ที่ไม่ดีในการสนับสนุนการผลิตจะต้องทำงานล่วงเวลา และถ้าคนคนนั้นเป็นพนักงานที่ได้รับการยกเว้นเต็มเวลาก็เอ้ยมันไม่แพงเลย ในความเป็นจริงคุณภาพไม่ดีและการจัดการที่ไม่ดีได้รับรางวัลเพราะการทำงานล่วงเวลาฟรีจริงลดต้นทุนค่าแรงต่อชั่วโมง!

แน่นอนขึ้นอยู่กับประเภทของซอฟต์แวร์ที่ใช้ (ซอฟต์แวร์ที่ใช้พลังงานระบบอาวุธระบบ avionics หรือระบบการแพทย์อาจมีผลกระทบต่อชีวิต) แต่รถมีค่าใช้จ่ายเงินจำนวนมากและมีการใช้เป็นประจำเพียงพอที่จะหมดความน่าเชื่อถือ ค่อนข้างเป็นรูปธรรมและเจ็บปวด ความล้มเหลวของซอฟต์แวร์มักจะมีวิธีแก้ปัญหา

ความคิดอื่น: รถยนต์ดูน่าเชื่อถือ แต่มีค่าใช้จ่ายในการบำรุงรักษาที่แน่นอนซึ่งกำลังดำเนินต่อไปแม้ว่ารถจะทำงานได้ดีและวัฒนธรรมก็เป็นที่ยอมรับและแม้แต่ค่าใช้จ่ายที่ภาคภูมิใจของคนที่ใส่ใจรถยนต์ของพวกเขา ในทางกลับกันซอฟต์แวร์มักจะเสียแล้วเมื่อติดตั้งและมักจะมีการเปลี่ยนแปลงเมื่อเวลาผ่านไป แต่ในทางวัฒนธรรมแล้วไม่มีใครต้องการจ่ายสำหรับการบำรุงรักษา


4

รถยนต์ไม่น่าเชื่อถือสำหรับประวัติศาสตร์ส่วนใหญ่ของพวกเขาและมีช่วงการเรียนรู้อย่างแน่นอน รถยนต์มีการผลิตในขนาดใหญ่เป็นเวลาประมาณ 60 ปีในขณะที่ซอฟแวร์ได้รับการผลิตในขนาดใหญ่ประมาณ 20-25 เท่านั้น โดยทั่วไปแล้วฉันหมายถึงว่ามีขนาดใหญ่พอที่ฝูงชนจะซื้อ / ใช้และมีแรงจูงใจมหาศาลอย่างแท้จริงในการหาวิธีที่สมบูรณ์แบบสำหรับการสร้างมันขึ้นมา


4

ฉันชอบคิดว่า Car เป็นแอปพลิเคชั่น ในขณะที่ระบบปฏิบัติการเป็นถนนที่แอปพลิเคชันทำงาน

อินเทอร์เฟซระหว่างถนนและรถยนต์ถูกกำหนดไว้อย่างดี ผ่านการทดสอบอย่างดีและมีการตรวจสอบอย่างกว้างขวางสำหรับความเข้ากันได้แบบย้อนหลัง (ซึ่งเป็นเรื่องง่าย แต่ถึงอย่างนั้นคุณก็มีปัญหาความเข้ากันได้แบบย้อนหลัง รถยนต์ประเภท "Farrie" มีช่วงเวลาที่ลำบากในการวิ่งบนถนนประเภท "ถนนโคลน"

แม้กระทั่งระบบปฏิบัติการของคุณเช่นเดียวกับถนนจำเป็นต้องมีการบำรุงรักษาอย่างต่อเนื่อง สินค้าบริดจ์ออกมา รถยนต์วางโซ่หิมะและฉีกถนนเช่นแอปพลิเคชันเสียหายและทำให้ดิสก์และไฟล์ที่ใช้โดยระบบปฏิบัติการเสียหาย

แอปพลิเคชันจะถูกเขียนในระบบปฏิบัติการเดียว แต่โดยทั่วไปแล้วพวกเขาจะต้องใช้ระบบปฏิบัติการเวอร์ชันต่าง ๆ (ถนนประเภทต่าง ๆ ) ดังนั้นแอพที่ดีที่สุดของคุณอาจทำงานได้อย่างราบรื่นและไม่มีปัญหาตราบใดที่มันทำงานบนระบบปฏิบัติการที่ถูกต้อง (ทางหลวง) ในขณะที่รหัสวัตถุประสงค์ทั่วไปอื่น ๆ (เรียบง่าย) จะทำงานได้ดีบนถนนทุกประเภท

อินเทอร์เฟซระหว่างแอปพลิเคชันและระบบปฏิบัติการได้รับการกำหนด แต่มีความซับซ้อนมากและผันผวนเล็กน้อยเสมอ โดยเฉพาะอย่างยิ่งเนื่องจากเราอนุญาตให้ผู้ใช้ปรับเปลี่ยนระบบปฏิบัติการของตัวเองด้วยส่วนขยาย หากรัฐบาลอนุญาตให้ผู้ใช้แก้ไขถนนจะมีการขัดข้องมากขึ้น

เมื่อคุณเริ่มจำกัดความสามารถของผู้ใช้ในการปรับเปลี่ยนระบบปฏิบัติการความน่าเชื่อถือของแอพพลิเคชั่นจะกลายเป็นเกือบจะแข็ง ดูอุปกรณ์ฝังตัวทั้งหมด เราไม่อนุญาตให้ผู้ใช้ใกล้กับ OS ของพวกเขาและทำงานได้ดีและต่อเนื่องตลอด 24/7 โดยไม่มีการหยุดชะงัก

ดังนั้นฉันจะบอกว่ามันไม่ใช่ซอฟต์แวร์ที่ไม่น่าเชื่อถือ มันก็เหมือนกับการบอกว่าผู้ใช้กำลังขุดหลุมในทางหลวงสำหรับการใช้งาน สวัสดีแอปพลิเคชันของคุณเพิ่งชนเข้ากับหลุมที่ฉันขุดเมื่อปีที่แล้วและลืมไป


+1 การเปรียบเทียบที่ดีมากและสมบูรณ์ในสิ่งที่ฉันต้องการเขียน (แต่ไม่ได้อ่านหลังจากนี้)
Joris Meys

3

ก่อนอื่นผู้ใช้ของคุณจำเป็นต้องรู้ว่ามีซอฟต์แวร์ที่น่าเชื่อถือในโลกนี้ซึ่งเขาไม่รู้ด้วยซ้ำว่ามีอยู่จริง คุณเคยเห็นทีวีพังไหม? ฉันก็ไม่เหมือนกัน.

ฉันคิดว่าเหตุผลหลักคือซอฟต์แวร์นั้นไม่สำคัญ การไม่มีความหมายสำคัญหมายความว่าผู้ที่ไม่ใช่นักพัฒนาจะไม่เห็นความคืบหน้าเกิดขึ้น ตัวอย่างเช่นถ้าฉันสร้างรถยนต์คุณสามารถเห็นฉันประกอบชิ้นส่วนต่าง ๆ และมันจะมีลักษณะเหมือนรถมากขึ้น แต่ถ้าคุณดูที่การเขียนโปรแกรมฉันบางทีฉันจะใช้เวลาหลายชั่วโมงในการสาปแช่งที่หน้าจอสีดำที่มีข้อความสีเขียวทำรูปแบบแปลก ๆ และจากนั้นเมื่อรูปแบบการเปลี่ยนแปลงเพียงเล็กน้อยฉันจะตื่นเต้นมากเกินไป

ด้วยเหตุนี้คนทั่วไปจึงไม่เข้าใจความซับซ้อนของซอฟต์แวร์ เมื่อพวกเขาเห็นหน้าต่างพวกเขาคิดว่าพวกเขาเห็นโปรแกรมโดยรวมซึ่งถือว่าผิดปกติ

นอกจากนี้ซอฟต์แวร์ยังมีการปรับแต่งให้หนักกว่ารถยนต์มาก เมื่อคุณปรับแต่งรถคุณจะไม่ขัดกับการออกแบบของมันเพราะมันจะโง่อย่างเห็นได้ชัด หากเครื่องยนต์ของฉันอยู่ด้านหน้าของรถการเคลื่อนที่ไปทางด้านหลังส่วนใหญ่จะเป็นหายนะครั้งใหญ่ อย่างไรก็ตามเนื่องจากซอฟต์แวร์ไม่มีความสำคัญหากลูกค้าขอให้คุณทำอะไรบางอย่างกับการออกแบบพวกเขาจะไม่ได้รับการบ่งชี้ (ยกเว้นคุณ แต่พวกเขาจะไม่ฟัง) ว่าสิ่งที่พวกเขาทำนั้นโง่และพวกเขา ' จะไปทุกคนประหลาดใจว่ามันไม่ทำงานอย่างที่คาด


ทีวีของฉันขัดข้องตลอดเวลา (สิ่งดิจิตอลทำให้มันเกิดขึ้น)
TP1

3
  1. ขาดการแบ่งปันข้อมูล (โปรแกรมเมอร์บินเดี่ยวหรือเป็นกลุ่มเล็ก ๆ ) นักออกแบบรถยนต์ทำงานร่วมกับทีมที่เชื่อมโยงกันภายใน บริษัท ขนาดใหญ่และพวกเขาทุกคนมีความรู้ร่วมกันถ้าเราทุกคนทำงานให้กับ บริษัท ใหญ่ ๆ จากผู้อื่นนี่คือสาเหตุที่สิ่งต่าง ๆ เช่นโปรแกรมโอเพ่นซอร์สและแหล่งข้อมูลออนไลน์มีความสำคัญมาก)
  2. ความคาดหวังของผู้เข้าร่วมงานภาคสนาม (ไม่เป็นไรถ้านักออกแบบรถยนต์มีประโยชน์เพียงเล็กน้อยในช่วง 5-10 ปีแรก แต่ถ้าโปรแกรมเมอร์เข้าสู่การสัมภาษณ์และกล่าวว่าเขา / เธอจะไม่ได้ใช้งานมากถึง 5-10 ปี การสัมภาษณ์สิ้นสุดลงแล้ว)
  3. ขาดการทดสอบการรุก (เนื่องจากขาดเงินทุนปัญหาทางกฎหมาย ฯลฯ อย่างไรก็ตามผู้ผลิตรถยนต์อย่างไรก็ตามรถสแลมหลังรถเข้าไปในกำแพงอิฐมีอุโมงค์ลมมีความต้องการประสิทธิภาพค่อนข้างตรงไปตรงมา ฯลฯ )
  4. ความโปร่งใสของข้อมูล (คุณไม่รู้ว่าซอฟต์แวร์ส่วนใหญ่ทำงานอย่างไรคุณเดาหรือตั้งสมมติฐานจากการสัมภาษณ์การแถลงข่าวการโฆษณา ฯลฯ ด้วยรถยนต์อย่างไรก็ตามสิ่งส่วนใหญ่จะอยู่ตรงนั้นเพื่อให้คุณดู)
  5. การห่อหุ้มความรู้โดยธรรมชาติ (คน / หุ่นยนต์เชื่อมกรอบเข้าด้วยกันไม่จำเป็นต้องรู้คณิตศาสตร์หลังระบบควบคุมความมั่นคงโปรแกรมเมอร์ต้องมีความรู้เกี่ยวกับคนทั่วไปนับพันหรือหมื่นคนที่ไม่รู้จักในขณะที่นักออกแบบรถยนต์เท่านั้น จำเป็นต้องรู้หลายร้อยหรือหลายพัน)
  6. ความมีตัวตน (ช่วยได้เมื่อคุณเห็น)
  7. Age of Field (การออกแบบยานพาหนะมีอายุหลายพันปีการออกแบบยานยนต์มีอายุมากกว่า 250 ปี [เครื่องยนต์ไอน้ำ ฯลฯ ])
  8. ความสำคัญของระบบย่อย (รถยนต์จะยังคง "ทำงาน" แม้ว่าชิ้นส่วนจำนวนมากของพวกเขาจะหยุดทำงาน - ล็อคไฟฟ้า, กระจกไฟฟ้า, HVAC, ที่ปัดน้ำฝนกระจกหน้า, หน้าต่างแตก, ถังหาย, ยางแบน [ใส่ใหม่], วิทยุ, แสงหนึ่งหรือสองรายการจากระยะไกล ฯลฯ เมื่อบางสิ่งบางอย่างในคอมพิวเตอร์แตกมันมักจะเป็นสถานการณ์ SHTF)
  9. การพึ่งพาซึ่งกันและกัน (เมื่อคอมพิวเตอร์หนึ่งเครื่องแตกมันไม่ได้หายากที่จะส่งผลกระทบต่อคอมพิวเตอร์หลายร้อยหรือหลายพันเครื่องเมื่อรถหนึ่งคันแบ่งค่อนข้างหายากที่รถคันอื่นได้รับผลกระทบ - หากรถคันอื่นได้รับผลกระทบ -3)
  10. Blank Blame (หากส่วนหนึ่งของคอมพิวเตอร์หรือคอมพิวเตอร์หนึ่งเครื่องแบ่งออกเป็นพัน ๆ ส่วนและทำให้ระบบเจ็บระบบจะขยายไปถึงคอมพิวเตอร์ทั้งหมดหรือในกรณีหลังเครือข่ายคอมพิวเตอร์ทั้งหมดหากรถของคุณถูกรถชน เบรกที่ล้มเหลวหรือหากแผงลอยรถและจะไม่รีสตาร์ทบนทางหลวงเฉพาะชิ้นส่วนรถยนต์เท่านั้นที่ถูกตำหนิ)
  11. ระบบ จำกัด และไม่มีที่สิ้นสุด (รถยนต์สามารถบรรจุได้มากเท่านั้นและพวกเขาคาดหวังว่าจะทำงานภายใต้เงื่อนไขที่ จำกัด เช่นคุณไม่ได้ขับรถบีเอ็มดับเบิลยูข้ามภูมิประเทศที่มีรถจี๊ปที่สามารถทำได้ด้วยคอมพิวเตอร์ อย่างไรก็ตามความเป็นไปได้ไม่มีที่สิ้นสุด - มีสิ่งใหม่ ๆ อยู่ตลอดเวลา API ใหม่ระบบปฏิบัติการใหม่รูโหว่ความปลอดภัยใหม่ไอแพดซอฟต์แวร์โทรศัพท์มือถือใหม่สิ่งใหม่ ฯลฯ )
  12. ขอบเขตขององค์ความรู้ที่ต้องการ (บุคคลที่มี 130-140 IQ สามารถเรียนรู้ได้เกือบทั้งหมดเกี่ยวกับรถยนต์ แต่สามารถเรียนรู้เพียงเศษเสี้ยวของสิ่งที่ต้องรู้เกี่ยวกับคอมพิวเตอร์และการเขียนโปรแกรม)

3

เหตุผลง่ายๆว่าทำไมตรรกะทั้งหมดมีข้อบกพร่อง:

อุปกรณ์วิศวกรรมจะลดลงเพียงเพื่อInput / Output ; การเพิ่มจำนวนชิ้นส่วนเพื่อให้การดำเนินงาน I / O นี้ไม่เปลี่ยนแปลงการดำเนินการ I / O ดังนั้นระบบสามารถเข้าใจได้อย่างสมบูรณ์

ซอฟแวร์บนมืออื่น ๆ มีการป้อนข้อมูล -> กระบวนการ -> เอาท์พุท ด้วยเหตุนี้ระบบจึงไม่สามารถคาดการณ์หรือเข้าใจได้อย่างสมบูรณ์

Donald Rumsfeld กล่าวว่าดีที่สุด:

“ มีคนรู้จัก มีบางสิ่งที่เรารู้ว่าเรารู้ นอกจากนี้เรายังรู้ว่ามีสิ่งแปลกปลอมที่รู้จัก กล่าวคือเรารู้ว่ามีบางสิ่งที่เราไม่รู้ แต่ก็มีสิ่งแปลกปลอมที่ไม่ทราบ - สิ่งที่เราไม่รู้ว่าเราไม่รู้ ” - กระทรวงกลาโหมสหรัฐฯโดนัลด์รัมส์เฟลด์

สรุป:

  • อุปกรณ์เชิงกลคือระบบที่รู้จักและไม่รู้จัก
  • ซอฟต์แวร์ดังกล่าวข้างต้น แต่ยังไม่ทราบ -

1
+1 สำหรับการอ้างถึง D. Rumsfeld สื่อไม่ชอบเขา แต่ชายคนนั้นเป็นอัจฉริยะ
oosterwal

3

นี่เป็นคำถามที่โง่ (ไม่ใช่จากคุณ แต่มาจากบุคคลเดิม)

ดูเหมือนว่าพ่อของฉัน (ช่าง) ที่เกลียดคอมพิวเตอร์ก็ใช้เวลาทั้งวันบน eBay

มันเหมือนถามว่า "ทำไมต้นไม้ถึงเชื่อถือได้มากกว่าตัวมอด"

ก่อนอื่นฉันเป็นเจ้าของคอมพิวเตอร์ 30 (ใช่ 30+) และไม่ใช่หนึ่งในนั้นที่อยู่ในร้าน ฉันเพิ่งใช้จ่าย $ 1400 ไปกับการซ่อมแซมรถ ไปนับจำนวนร้านซ่อมรถยนต์เทียบกับซ่อมคอมพิวเตอร์ การเปรียบเทียบโง่อีกครั้ง

รถยนต์ทำจากเหล็กพลาสติกคอมพิวเตอร์ รถยนต์ทำงานได้ในทุกสภาพอากาศคอมพิวเตอร์ที่ออกแบบมาสำหรับใช้ในอาคาร

พลเรือจัตวาของฉัน 64 (26 ปี) ทำงานได้อย่างสมบูรณ์และไม่มีการซ่อมแซม ยานพาหนะของฉันทั้งสอง (อายุน้อยกว่า 10 ปี) ได้รับการซ่อมแซมอย่างกว้างขวาง แสดงรถยนต์ที่มีการใช้งานหลายพันชั่วโมงเป็นเวลา 26 ปีที่ยังคงทำงาน 100% เหมือนเดิมเมื่อมันเป็นโรงงานใหม่


2

ซอฟแวร์ขึ้นอยู่กับบิต: 0 และ 1 รถยนต์จะขึ้นอยู่กับ (ส่วนใหญ่) ชิ้นส่วนเครื่องจักร

ชิ้นส่วนเชิงกลสามารถเสื่อมสภาพหรือทำงานผิดปกติและยังคงใช้งานได้ เบรกของคุณสึกหรอหรือวาล์วรั่ว แต่รถยังคงทำงานส่วนใหญ่จนกว่าคุณจะได้รับการซ่อมแซม

ซอฟต์แวร์ส่วนใหญ่ไม่มีความผิดพลาดอย่างค่อยเป็นค่อยไป มันใช้งานได้หรือมันหยุด การหารด้วยศูนย์ไม่ได้ "ถูกต้อง" มันเป็นเพียงข้อผิดพลาด เมื่อคุณพยายามบันทึกลงในไดรฟ์ที่ไม่มีพื้นที่เพียงพอคุณจะไม่สามารถบีบบีบอัดข้อมูลทั้งหมดได้ยาก มันจะไม่ไป

ฉันไม่คิดว่าซอฟต์แวร์นั้นมีความน่าเชื่อถือน้อยกว่ารถยนต์ แต่เมื่อซอฟต์แวร์ล้มเหลวซอฟต์แวร์จะล้มเหลวทันทีไม่ใช่ค่อย ๆ


1

ฉันคิดว่าฉันมีความคล้ายคลึงที่ดีกว่ามาก ใช้ บริษัท ที่สร้างรถพยาบาลตามข้อกำหนดของลูกค้า แพลตฟอร์มฐาน (กล่าวว่าแชสซี RV-cutaway ที่ปฏิบัติงานได้อย่างสมบูรณ์และถูกกฎหมาย) ต้องมีการดัดแปลงหลายจุด: เฟรมระบบชาร์จฟิลเลอร์รางน้ำช่วงล่าง ฯลฯ การดัดแปลงเหล่านั้นไม่เพียง แต่จะต้องเป็นกฎหมายตามท้องถนน ในขณะที่ความพึงพอใจของลูกค้า

จากนั้นคุณต้องสร้างตัวรถพยาบาลเองซึ่งเต็มไปด้วยข้อกำหนดด้านกฎระเบียบจากหน่วยงานรัฐบาลและหน่วยงานอื่น ๆ หลายชั้น ในขณะที่ยังคงตอบสนองความต้องการของลูกค้าในการจัดเรียงที่นั่งหรือระบบจัดเก็บข้อมูลที่สนุกสนาน และอย่าลืมว่าคุณมีลูกค้าที่แตกต่างกันนับร้อยจากทั่วโลกในการซื้อและการใช้งานที่แตกต่างกันไม่มีใครเคยพูดว่า บ่อยครั้งที่ต้องการวิศวกรรมใหม่ทั้งหมดของสิ่งทั้งหมด

รถยนต์? นั่นเป็นเรื่องเล็กน้อย คุณจะซื้อสิ่งที่สร้างขึ้นและคุณจะไม่มีผลกระทบโดยตรงกับทุกแง่มุมของการออกแบบ แม้แต่สีที่คุณเลือกก็เป็นสิ่งประดิษฐ์เพราะคุณไม่สามารถระบุสิ่งที่ยังไม่ได้รับการออกแบบและทดสอบได้ มีความหมายเพียง 'ตลาด' ไม่ใช่ 'ลูกค้า' ฉันขอยืนยันว่าซอฟต์แวร์ที่ผลิตในตลาดโดยทั่วไปนั้นมีความน่าเชื่อถือเท่ากับรถยนต์ที่คุณไปรับจากตัวแทนจำหน่ายในพื้นที่


1

รถยนต์ไม่น่าเชื่อถือเท่าที่คุณคิด เป็นเพียงความผิดพลาดที่สามารถซ่อนอยู่เป็นเวลานาน (หรือเพิกเฉย) โดยไม่ทำให้สิ่งทั้งหมดล้มเหลว น้ำมันเครื่องของคุณรั่วไหลและ / หรือสารหล่อเย็น? ไม่มี? คุณแน่ใจไหม? คุณอาจจะผิด ... มันอาจจะรั่วเล็กน้อยในที่ที่คุณไม่ได้สังเกต ... ตอนนี้ขยายไปที่ช่วงล่างแผงตัวถังภายในและอื่น ๆ ฉันไม่คิดว่าฉันจะเคย ยังพบรถที่ฉันไม่สามารถหาสิ่งผิดปกติด้วย อย่างไรก็ตามชิ้นส่วนส่วนใหญ่นั้นไม่จำเป็นสำหรับภารกิจด้านการขนส่ง ไม่เช่นนั้นกับคอมพิวเตอร์ เกือบทุกส่วนในคอมพิวเตอร์เป็นสิ่งสำคัญ

เป็นการอภิปรายแบบอะนาล็อกและดิจิตอลแบบเก่าที่เพิ่งบรรจุใหม่ Digital TV นั้นยอดเยี่ยมตราบใดที่ทุกอย่างสมบูรณ์แบบ บางสิ่งบางอย่างผิดปกติขึ้นไปเสียง stutters และวิดีโอบล็อกออกมาทำให้ไร้ประโยชน์ เปรียบเทียบกับทีวีอะนาล็อกที่คุณเพิ่งได้รับเสียงฟู่หรือคงที่เล็กน้อยที่ไม่สนใจ


1

ประการแรกแน่นอนว่าบางรุ่นของ sw นั้นไว้วางใจได้อย่างสมบูรณ์และรถยนต์โดยเฉพาะอย่างยิ่งคนอังกฤษและอิตาลีนั้นไม่จำเป็นต้องเชื่อถือได้

ที่กล่าวว่าประสบการณ์ของฉันในการทำงานกับซอฟต์แวร์ยานยนต์คือมันมีสองสิ่ง:

  • ต้นทุนการรับประกัน เมื่อ sw ของคุณล้มเหลวคุณรีสตาร์ท บางทีคุณอาจจะรายงานข้อผิดพลาด หรือใช้สัญญาการสนับสนุนที่มีราคาแพง เมื่อรถของคุณล้มเหลวคุณจะต้องนำเข้ามาและเรียกร้องให้ได้รับการแก้ไขภายใต้การรับประกัน สิ่งนี้จะทำให้ผู้ผลิตมีค่า $ 100 ขึ้นไป หากความล้มเหลวแต่ละครั้งมีค่าใช้จ่ายผู้ผลิต $ 2 ฉันค่อนข้างแน่ใจว่า sw จะน่าเชื่อถือมากขึ้น

  • JD Powers (และอันดับคุณภาพอื่น ๆ ) JD Powers สำรวจ ThingsGoneWrong (ซึ่งอาจเป็นอะไรก็ได้) และถ้าการจัดอันดับนั้นเป็นคนที่ไม่ดีจริง ๆ ก็จะไม่ซื้อรถของคุณอย่างน้อยก็ไม่ได้สำหรับเงินมากพอที่จะทำกำไร ถ้าเรามี JD Powers สำหรับ sw และผู้คนสนใจมันจริงๆฉันก็ค่อนข้างแน่ใจว่า sw น่าเชื่อถือมากขึ้น

ดังนั้นหากคุณสร้างรถยนต์ที่ไม่น่าเชื่อถือค่าใช้จ่ายในการรับประกันจะทำให้คุณได้กำไรอย่างรวดเร็วและในไม่กี่ปีการจัดอันดับคุณภาพไม่ดีหมายความว่าคุณจะไม่ขายรถยนต์ใด ๆ เลย หากคุณทำสัญญาที่ไม่น่าเชื่อถือผู้ใช้จะร้องเรียนและคุณจะขายสัญญาการสนับสนุนที่มีราคาแพง


1

ความน่าเชื่อถือและความปลอดภัยของยานยนต์ ในหลาย ๆ ประเทศ (ส่วนใหญ่) กฎหมายกำหนดว่าพวกเขามีระดับความน่าเชื่อถือและความปลอดภัยขั้นต่ำและมีการทดสอบสำหรับสถานการณ์ที่เลวร้ายที่สุด (ไม่ว่าจะเป็นอะไร) ซอฟต์แวร์เชิงพาณิชย์ไม่ใช่ส่วนใหญ่

ในขณะที่มีผลกระทบทางกฎหมายอื่น ๆ สำหรับซอฟต์แวร์เป็นสิ่งสำคัญที่จะต้องทราบว่าหากซอฟต์แวร์ขัดข้องทุกครั้งที่คุณกดปุ่ม "บันทึก" นี่เป็นเพียงเรื่องของการแก้ไข / แก้ไขแล้วคุณจะไปต่อ หากรถชนทุกครั้งที่คุณเปิดไฟแสดงสถานะนี่เป็นสิ่งที่แย่กว่านั้นมาก มันไม่สำคัญเลยที่ Microsoft Outlook จะทำงานได้โดยไม่ล้มเหลวอย่างกะทันหันเพราะเป็น SUV ที่จะทำงานได้โดยไม่ต้องกะทันหัน

ที่ถูกกล่าวว่ามีซอฟต์แวร์อื่น ๆ ที่มีความรับผิดชอบมากกว่าหรือมากกว่ากลไกของรถยนต์ เครื่องบินและระบบขีปนาวุธจะต้องมีความน่าเชื่อถือ; มีชีวิตที่เดิมพัน! ใครจะหวังว่าสิ่งเหล่านี้จะถูกทดสอบอย่างเข้มงวดมากกว่ารถยนต์ทั่วไป


1

อุตสาหกรรมรถยนต์ไม่ปล่อยรถ "เบต้า" สู่สาธารณะสำหรับการทดสอบอุตสาหกรรมรถยนต์ไม่ต้องกังวลเกี่ยวกับสภาพแวดล้อมที่พวกเขาส่งมอบผลิตภัณฑ์ของตนด้วยอย่างไรก็ตามพวกเขาต้องกังวลเกี่ยวกับสิ่งอื่น ๆ อีกมากมายนั่นคือ กล่าวว่าอุตสาหกรรมซอฟต์แวร์เป็นครั้งแรกที่แตกต่างกันโดยพื้นฐาน (อย่างที่เราทุกคนรู้) ดังนั้นความน่าเชื่อถือและความซับซ้อนเป็นสิ่งที่ชี้นำ ในความคิดของฉันรถยนต์มีความซับซ้อนกว่าซอฟต์แวร์ แต่มันง่ายกว่าที่จะเห็นสิ่งที่ทำงานหรือไม่นับตั้งแต่

  • ที่ด้านล่างของรถไม่ได้เป็นเสมือนจริงมันก็จะง่ายต่อการทดสอบ (แต่แพงกว่า)
  • พวกเขาเริ่มเร็วกว่าอุตสาหกรรมซอฟต์แวร์ถึงแม้ว่าพวกเขาจะมีคนน้อยกว่า แต่คุณก็ไม่สามารถลดการฝึกฝนและความรู้ที่พวกเขารวบรวมได้ อุตสาหกรรมซอฟต์แวร์ยังเป็นเด็กเมื่อเทียบกับมัน
  • อุตสาหกรรมรถยนต์ทั้งหมดถูกผูกมัดตามกฎหมายและจริยธรรมที่จะไม่ทำรถที่ฆ่าคนขับโดยเฉพาะในทศวรรษที่ผ่านมา

ดังนั้นคำกล่าวที่ว่าซอฟต์แวร์มีความน่าเชื่อถือน้อยกว่ารถยนต์สามารถเป็นจริงสำหรับซอฟต์แวร์หลายประเภทและผิดอย่างสิ้นเชิงสำหรับพื้นที่อื่น ๆ (ความปลอดภัย, วิชาการบิน ... ) คุณสามารถมั่นใจได้ว่าซอฟต์แวร์นั้นมีความน่าเชื่อถือที่สุดอย่างน้อยที่สุด ของรถยนต์ในพื้นที่เหล่านั้น เพียงเพราะพื้นที่เหล่านั้นมีความสำคัญและจากสิ่งที่ฉันรู้เฉพาะในซอฟต์แวร์พื้นที่เหล่านั้นสามารถเปรียบเทียบกับอุตสาหกรรมรถยนต์

ซึ่งนำเราไปสู่สิ่งนี้:ซอฟต์แวร์ส่วนใหญ่ไม่ถือว่ามีความสำคัญในโดเมนของตน เมื่อพิจารณาเช่นนี้คุณมีซอฟต์แวร์ที่เชื่อถือได้ปัญหาเดียวที่คุณจะพบในปัญหาเหล่านี้คือปัญหาที่เชื่อมโยงกับสภาพแวดล้อม (ดังนั้นหากคุณสามารถควบคุมมันได้แม้ว่าคุณจะไม่มีปัญหา) ไม่ใช่ตัวซอฟต์แวร์เอง อย่างไรก็ตามโปรแกรมแก้ไขซอฟต์แวร์ส่วนใหญ่ไม่ทำงานในพื้นที่สำคัญเหล่านี้แน่นอนว่าพวกเขาจะต้องให้คุณภาพในระดับหนึ่ง แต่พวกเขาก็มีข้อผูกพันมากกว่า (ตามความเห็นของฉัน) ในการส่งมอบซอฟต์แวร์โดยเร็วที่สุด อย่างไรก็ตามต้องมีซอฟต์แวร์ที่ดี: การจัดการโครงการที่ดีข้อกำหนดที่มั่นคงการออกแบบที่ดีและทักษะระดับดีจากผู้ที่ทำงานในนั้น (เพื่อดำเนินการต่อ) นั่นเป็นเพียงการทำให้เราไม่ได้พูดถึงการขายมัน ...

ทั้งหมดนี้ต้องใช้เวลาจึงต้องใช้เงิน ฉันไม่ได้บอกว่าคุณจะได้รับสิ่งที่คุณจ่ายสำหรับสิ่งที่ฉันพูดส่วนใหญ่เวลาที่คุณผลิตสิ่งที่คุณลงทุนไม่น้อย (ยกเว้นถ้าคุณได้เมา แต่แล้วคุณไม่มีอะไรเลย ... ) และบางครั้งมากขึ้น .


1

ฉันไม่เชื่อว่ารถยนต์มีความซับซ้อนน้อยลง แต่ถึงแม้ว่าเป็นกรณีนี้ฉันไม่คิดว่าซอฟต์แวร์จะมีความน่าเชื่อถือน้อยลง อย่างไรก็ตามฉันเชื่อว่ามีปัจจัยที่สำคัญกว่าที่นำไปสู่ความคลาดเคลื่อนในความน่าเชื่อถือของซอฟต์แวร์:

  1. สิ่งที่เป็นนามธรรมเกี่ยวข้องกับซอฟต์แวร์ สิ่งนี้ทำให้ผู้สร้างซอฟต์แวร์เข้าใจผิดว่าสิ่งต่าง ๆ ทำงานอย่างไร เมื่อเวลาผ่านไปสิ่งที่เป็นนามธรรมจะถูกเพิ่มเข้ามา ตัวอย่างเช่นภาษาแอสเซมบลีช่วยให้คุณสามารถควบคุมเครื่องได้โดยตรง C เป็นนามธรรมมากขึ้น แต่ก็ยังอยู่ใกล้กับเครื่อง Java, C # และสิ่งที่จะตามมาคือการสรุปสิ่งที่เกิดขึ้นในเครื่อง อีกตัวอย่างคือถ้าคุณเป็นโปรแกรมเมอร์ที่ต้องการเข้าใจว่าเครือข่ายเกิดขึ้นในระดับซอฟต์แวร์ได้อย่างไรคุณควรรู้โปรแกรมด้วย C เพราะโครงสร้างพื้นฐาน (เป็นซอฟต์แวร์) เขียนด้วย C

  2. ประสบการณ์ที่แตกต่างและความรู้ของผู้ผลิตนำไปสู่ผลลัพธ์ที่แตกต่าง นักพัฒนาที่แตกต่างกันสร้างซอฟต์แวร์ที่มีความน่าเชื่อถือต่างกัน เช่นเดียวกันสามารถพูดเกี่ยวกับผู้ผลิตรถยนต์ อย่างไรก็ตามความแตกต่างคือผู้ใดก็ตามที่สามารถใช้โปรแกรมแก้ไขและคอมไพเลอร์หรือแม้แต่ติดตั้ง IDE (Integrated Development Environment) ก็สามารถสร้างซอฟต์แวร์และฟรี ในการสร้างรถยนต์คุณต้องลงทุนอย่างมากโรงงาน (บางแห่งสามารถสร้างรถได้โดยไม่ต้องใช้ แต่คุณจะไม่พบมันรอบตัวคุณทุกที่) ความจริงที่ว่าคุณจะต้องลงทุนมหาศาลนั่นหมายความว่าคุณจะพยายามจ้างงานที่ดีที่สุดในวงการ ยังมีปัญหาความน่าเชื่อถือกับรถยนต์ หากคุณตระหนักถึงมันรถยนต์หลายล้านคันกำลังถูกถอนออกจากตลาดเนื่องจากมีข้อบกพร่องร้ายแรง ในรถของฉันผู้ผลิตจะเปลี่ยนก้ามเบรกฟรีสำหรับรถยนต์ทุกคันที่ซื้อในปีเดียวกัน

  3. ข้อบกพร่องในซอฟต์แวร์มักปรากฏแก่ผู้ใช้มากกว่ารถยนต์ นี่คือผลลัพธ์ของการโต้ตอบและการตอบสนองระหว่างผู้ใช้และซอฟต์แวร์ ในรถยนต์เราต้องใส่ใจกับรายละเอียดที่น้อยลงเช่น "รถกำลังเร่งเมื่อเราเหยียบคันเร่ง" การแตกการเลี้ยวไฟกระจก ... ฯลฯ ในซอฟต์แวร์โดยที่ผู้ใช้ทุกคนคลิก / อินพุตโดยปกติจะมี การตอบกลับ. ดังนั้นจึงมีหลายจุดที่ซอฟต์แวร์สามารถบั๊กกี้และผู้ใช้จะสังเกตเห็นได้ทันที ทำให้ผู้ใช้เชื่อว่าเชื่อถือได้น้อยกว่ารถยนต์

  4. การแฮ็กและการโจมตี ยิ่งมีการใช้ซอฟต์แวร์อย่างแพร่หลายมากเท่าใดเปอร์เซ็นต์ของการโจมตีแฮ็คก็จะยิ่งสูงขึ้นเท่านั้น คุณสามารถเปรียบเทียบสิ่งนี้กับการโจรกรรมรถยนต์ สำหรับฉันแล้วความน่าเชื่อถือของรถยนต์จะลดลงเมื่อคนอื่นสามารถเปิดได้ยกเว้นเจ้าของหรือกุญแจ อย่างไรก็ตามการพยายามโจมตีซอฟต์แวร์นั้นง่ายกว่ารถยนต์เนื่องจากผู้โจมตีมองไม่เห็น ดังนั้นเมื่อซอฟต์แวร์ถูกบุกรุกผู้คนจะเชื่อมโยงว่าไม่น่าเชื่อถือแม้ว่าจะเชื่อถือได้ในสิ่งที่สร้างขึ้นมา


0

มันเหมือนทุกสิ่งทุกอย่าง ... เมื่อมันทำงานคุณไม่สนใจ ... เมื่อมันยากจน (หรือไม่ทำงานตามที่คุณต้องการ / คาดหวัง) ที่คุณสนใจ

นึกถึงเครื่องบิน ผู้คนจำนวนมากกังวลเกี่ยวกับคนที่พยายามจะจี้หรือระเบิด แต่จริงๆแล้วจำนวนของเหตุการณ์เชิงลบนั้นน้อยมากเมื่อเทียบกับจำนวนเที่ยวบินต่อวัน (มีเที่ยวบินมากขึ้นในวันเดียวจากนั้นถูกจี้หรือวางระเบิด .. แม้แต่ห่าก็พยายามที่จะถูกปล้นหรือถูกทิ้งระเบิด)

มันคือทั้งหมดที่คุณมองและวิธีการวัด


0

จริงๆแล้วมันค่อนข้างง่าย รถยนต์เป็นเทคโนโลยีเก่า แน่ใจว่ามีระฆังและนกหวีดวันนี้ (ที่หยุดพัก) แต่ถ้าคุณมองไปที่รถยนต์ในช่วงต้น - พวกเขายากจนมาก

'เทคโนโลยี' ที่อยู่เบื้องหลังชิ้นส่วนเครื่องจักรกลของรถยนต์นั้นมีมานานหลายร้อยปีและเครื่องยนต์สันดาปภายในก็มีมานานแล้วเช่นกันและเมื่อพวกเขาได้รับการแนะนำก็มีปัญหามากมาย

พิจารณาว่าปัญหาหน่วยความจำเกือบจะเป็นเรื่องในอดีตกับบางแพลตฟอร์มที่มีการจัดการของเรา ให้ซอฟต์แวร์สองสามร้อยปีและเราจะจัดการมันด้วย ในความเป็นจริงเมื่อพิจารณาถึงความซับซ้อนของซอฟต์แวร์ฉันคิดว่าเราล้ำหน้ากว่า


0

รถยนต์สมัยใหม่พึ่งพา s / w เมื่อรถยนต์สมัยใหม่ล้มเหลวตัวอย่างเช่นคอมพิวเตอร์เครื่องยนต์ล้มเหลวมันมักจะ (แม้ว่าจะไม่เสมอไป แต่มักจะ) อุปกรณ์อิเล็กทรอนิกส์นั่นคือ carked ไม่ใช่ s / w

ถามเจ้าของรถสมัยใหม่ที่มี ECU อยู่ในนั้นนานแค่ไหนก่อนที่ความล้มเหลวจะมีราคาแพง ฉันจะตกตะลึงถ้าคุณได้รับ 10 ปี รถยนต์สมัยใหม่ที่เต็มไปด้วยอุปกรณ์อิเล็กทรอนิกส์และเซ็นเซอร์ไม่น่าเชื่อถืออย่างน่าทึ่ง

หากคุณศึกษาทฤษฎีความน่าเชื่อถือคำตอบจะชัดเจนมาก ทุกอย่างในเชิงกล (ซอฟต์แวร์ที่คาดหวัง) มีความน่าเชื่อถือในระดับคงที่ซึ่งเป็นอัตราความล้มเหลวเมื่ออยู่นอกเขตการตายของทารกและบริเวณที่สึกหรอ อัตราความล้มเหลวของรายการสุดท้ายคือ SUM ของอัตราความล้มเหลวของชิ้นส่วน เพิ่มชิ้นส่วนเพิ่มเติม: อัตราความล้มเหลวโดยรวมกลายเป็นจำนวนที่สูงขึ้น ความท้าทายคือการได้รับอัตราความล้มเหลวของส่วนประกอบทั้งหมดนั้นต่ำมาก

เมื่อพูดถึงสิ่งต่าง ๆ เช่นสายพานไทม์มิ่งและการสึกหรอของกระบอกสูบและเซ็นเซอร์ออกซิเจนจะเต็มไปด้วยอึและตัวเชื่อมต่อจะเป็นโอห์มมิกและสายแตกเนื่องจากการสั่นสะเทือน - มีเทคนิคที่สามารถใช้เพื่อลดอัตราความล้มเหลวได้ ค่าใช้จ่ายก็สูงขึ้นเมื่อคุณทำเช่นนี้

ในทางกลับกันซอฟต์แวร์มีอัตราความล้มเหลวคงที่ แม้จะมีความยากลำบากในการค้นหาข้อบกพร่องในบางครั้งในที่สุดซอฟต์แวร์ทั้งหมดเป็นเครื่องไส้กรอก อินพุต -> ทำสิ่งต่าง ๆ -> เอาท์พุท บางครั้งคำสั่งของอินพุตและการรวมกันของอินพุตนำไปสู่ความล้มเหลวด้วยโหมดที่ตรวจพบได้ เมื่อสิ่งนั้นเกิดขึ้นคุณก็พบข้อบกพร่องของคุณคุณจะแก้ไขมันและคุณก็ดำเนินต่อไป

ซอฟต์แวร์ที่ไม่มีข้อบกพร่อง (ทราบ) มีอัตราความล้มเหลวอย่างมีประสิทธิภาพ 0 มันจะทำงานตลอดไปโดยไม่มีความล้มเหลว (เวลาเฉลี่ยระหว่างความล้มเหลว = 1 / อัตราความล้มเหลว) แพลตฟอร์มฮาร์ดแวร์จะล้มเหลวก่อน

ซอฟต์แวร์ที่มีข้อบกพร่องอาจทำงานจนกว่าการรวมกันที่ถูกต้องของเงื่อนไขอินพุตเมื่อเวลาผ่านไปจะทำให้เกิดข้อบกพร่องในการแสดงรายการ

ความล้มเหลวในทั้งหมดนี้คือการลองและเปรียบเทียบอัตราความล้มเหลวของสิ่งต่าง ๆ (เกิดจากการสึกหรอการโยกย้ายโลหะในไอซีการเข้าของน้ำการสั่นสะเทือนและอื่น ๆ ) ด้วยอัตราความล้มเหลวของสิ่งที่เป็นเครื่องจักร จำกัด แน่นอน สิ่งที่ลำดับการเรียนการสอนบอกให้ทำ

(แม้แต่สิ่งต่าง ๆ เช่นอนุภาคอัลฟ่าที่พลิกบิตใน RAM เป็นปรากฏการณ์ทางกายภาพไม่ใช่ข้อบกพร่องของซอฟต์แวร์ลักษณะของการจัดการเช่น MAY ที่สม่ำเสมอนั้นเป็นข้อบกพร่องของซอฟต์แวร์ แต่จำไว้ว่าอนุภาคอัลฟ่าที่น่ารังเกียจ )


0

ความแตกต่างระหว่างซอฟต์แวร์และรถยนต์คือเพื่อให้นักพัฒนาซอฟต์แวร์สามารถรักษาสติปัญญาได้ผู้ใช้ทุกคนต้องใช้ซอฟต์แวร์ซ้ำซ้อนกันและเพื่อให้ผู้ผลิตรถยนต์มีสติต้องยอมรับว่าผู้ใช้ทุกคนกำลังขับรถอยู่ รถยนต์ที่แตกต่างกันอย่างมีนัยสำคัญเพราะวิธีที่คุณขับรถเปลี่ยนรถยนต์ แต่วิธีที่คุณใช้ซอฟต์แวร์ไม่จำเป็นต้องเปลี่ยนซอฟต์แวร์

ในทางกลับกัน,

หากคุณมีวิธีการตรวจสอบน้ำมันในซอฟต์แวร์ของคุณคุณจะรู้ว่ามันจะล้มเหลว

หากคุณมีวิธีที่จะเปลี่ยนน้ำมันในซอฟต์แวร์ของคุณคุณอาจจะสามารถยืดอายุการใช้งานของมันได้ภายในสองสามเดือน

และเพื่อขยายการเปรียบเทียบอย่างไม่มีจุดหมาย:

แผ่นแปะไม่เปลี่ยนน้ำมัน แต่เปลี่ยนปะเก็นที่รั่ว

การอัปเดตไม่ได้เปลี่ยนน้ำมันเครื่องพวกเขาซ่อมเบรก

การปล่อยไม่ได้เปลี่ยนน้ำมันพวกเขาเหมือนการเพิ่มการเผาไหม้ที่สำคัญน้อยกว่า


0

รถยนต์ที่พังทลายไม่สามารถทนได้ นอกจากนี้ยังสามารถเป็นอันตรายต่อชีวิต ซอฟต์แวร์ที่ทนต่อการพังทลายและผู้ใช้จะหลีกเลี่ยงหรือยอมรับมัน ไม่มีความต้องการมากสำหรับซอฟต์แวร์ฟรีบั๊ก

นอกจากนี้ซอฟต์แวร์ยังมีแนวโน้มที่จะถูกกำหนดเองคุณไม่มีรถยนต์ 10,000,000 รุ่นที่แตกต่างกัน ฉันว่าวิกิมีเดียมีความน่าเชื่อถือและมีจำนวนมากที่ใช้ซอฟต์แวร์ดังกล่าว ดังนั้นคุณสามารถบอกได้ว่าผู้คนจำนวนมากใช้บั๊กหรือซอฟต์แวร์ที่เชื่อถือได้ (wordpress, การควบคุมแหล่งต่าง ๆ , mysql และ sqlite ค่อนข้างน่าเชื่อถือ, ฯลฯ )


1
มีซอฟต์แวร์ออกมามากมายที่สามารถทำให้เกิดอันตรายได้หากล้มเหลว
อดัมเลียร์

@ แอนนาเลียร์: ใช่ แต่เขากำลังพูดถึง 'ซอฟต์แวร์โดยทั่วไป' รถยนต์ทุกคันเป็นอันตรายต่อซอฟต์แวร์ส่วนใหญ่ไม่ได้ นอกจากนี้จากสิ่งที่ฉันรู้ซอฟต์แวร์ประเภทนั้นมักจะเชื่อถือได้

0

ซอฟต์แวร์เป็นวัตถุทางคณิตศาสตร์และตรรกะขณะที่รถยนต์เป็นวัตถุจริง

นอกจากนี้คุณสามารถทราบได้อย่างง่ายดายเมื่อรถยนต์มีปัญหาและสิ่งที่เป็นปัญหาในขณะที่มันอาจเป็นเรื่องยากมากขึ้นกับซอฟต์แวร์: ลองนึกภาพคนที่มีปัญหากับคอมพิวเตอร์และคนที่มีปัญหาเกี่ยวกับรถยนต์ บุคคลนี้สามารถรู้ได้ดีว่ามีอะไรผิดปกติเพราะรถยนต์มีความเป็นนามธรรมน้อยกว่าคอมพิวเตอร์

ฉันไม่ได้พูดว่าคอมพิวเตอร์ยากต่อการเข้าใจ: รถยนต์ยังมีกฎทางกายภาพมากมายเช่นอุณหพลศาสตร์อิเล็กทรอนิกส์เคมี

คุณสามารถคาดการณ์การเปรียบเทียบนี้โดยพูดว่า: "ทำไมค้อนถึงเชื่อถือได้มากกว่าเลขา?"

ฉันไม่คิดว่าคำถามนั้นมีความเกี่ยวข้องจริงๆ แต่ฉันคิดว่ามันแสดงได้ดีว่าการขาดการศึกษาทางคณิตศาสตร์ที่ดีสามารถส่งผลกระทบต่อความเข้าใจในระบบบางประเภทได้อย่างไร


0

ซอฟต์แวร์มีความซับซ้อนมากกว่ารถยนต์ถึงแม้ว่ารถจะประกอบด้วยส่วนประกอบหลายพันชิ้นก็ตาม

หากรถยนต์มีความซับซ้อนเท่ากับซอฟต์แวร์ส่วนประกอบทั้งหมดของรถจะขึ้นอยู่กับส่วนประกอบอื่น ๆ ทั้งหมดของรถยนต์และส่วนประกอบรถยนต์จำนวนมากจะเชื่อมโยงโดยตรงกับส่วนประกอบรถยนต์อื่น ๆ

รถยนต์ของโลกทุกคันแทบจะไม่เท่ากับซอฟต์แวร์ Unix ดั้งเดิมที่มีความซับซ้อน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.