it-swarm-eu.dev

Proč není software tak spolehlivý jako auto?

Nechal jsem uživatele, aby mi položil tuto otázku. Víme, že auta se rozpadají, ale to je kvůli něčemu fyzickém (pokud není zapojen software!).

Snažil jsem se odpovědět na to, že software je mnohem mladší odvětví, ale uživatel se postavil proti tomu, že „se automobilový průmysl nestal mnohem stabilnějším a spolehlivějším s méně lidmi?“.

Také jsem se pokusil odpovědět na to, že software je složitější, ale uživatel namítl, že existuje mnoho tisíc dílů, které tvoří auto. Lidé, kteří navrhují a staví automobily, zpravidla znají velmi dobře své komponenty, ale nakonec nakonec všichni společně pracují.

Takže proč není software tak spolehlivý jako auto?

65
Alex Angas

Předpoklad vaší otázky je jednoduše nesprávný: Software není „méně spolehlivý“ než auto. Existuje miliardy za miliardy zařízení, která provozují vestavěný software 24x7, po celá léta, bez problémů. Sakra, některé z nich jsou in auta a řídí/monitorují motor. Jak tedy může být software méně spolehlivý než auto, pokud se auta spoléhají na software?

183
GrandmasterB

Navrhuji software a mechanické části.

Je to složitost.

Protože v moderním softwaru existují miliony „částí“.

Softwarové části jsou velmi komplikované a mají mnoho STÁTU. Mechanická nepohyblivá část nemá žádný stav.

Mechanická pohyblivá část má svou polohu (jedna proměnná).

Program, který běží a používá 1 MB z RAM, má milion bajtů stavu. To je mnohem více stavu než jakýkoli normální mechanický systém.

Bude existovat kombinace stavů, které se nikdy nezkoušejí, protože k nim dochází tak zřídka. V mechanickém systému (jako je auto) je snadné zkontrolovat, zda mechanické části během provozu vzájemně nezasáhly. Mechanický CAD software, který používám v práci, to dělá automaticky).

Pokud jste stavěli stroje z neviditelných, nedotknutelných částí a měli jste miliony pohyblivých částí, které si všichni prostě nechali ujít, bylo by to jako jednoduchý program.

Dokonce i "ahoj svět" běží na operačním systému. Staré 8bitové systémy a operační systémy s minipočítačem byly docela spolehlivé, protože byly jednoduché.

Věci, jako jsou knihovny DLL a sdílené knihovny, se nahradí v rámci aktualizací virů nebo instalací softwaru a poté program, který je předmětem zájmu, nefunguje. Trochu jako výměna pneumatiky v autě za jízdní kolo. Některé stavy Edge funkce knihovny zasahují (nejedná se tak, jak program očekává).

Programy psané v jazycích jako Java), které neumožňují mnoho nenavrhovaných interakcí mezi objekty (opětovné použití ukazatele, přetečení ohraničení pole), jsou obecně docela spolehlivé, jakmile je donutíte, aby vůbec fungovaly.
Používáte-li operační systémy se statickými knihovnami, jakmile program funguje, bude to fungovat i nadále (ale stále bude mít spoustu Edgeových podmínek na základě velikosti stavu).

Dave Parnas píše o získání spolehlivosti v softwaru tím, že stav programu zmenší. Přísní funkcionální programovací kluci dělají totéž tím, že nutí jediné statické přiřazení.

115
Tim Williscroft

Je to věcí volby spotřebitele.

Pokud by spotřebitelé požadovali, aby byl software stejně spolehlivý jako můj Honda Civic (na rozdíl od mého starého Fordu Maverick), bylo by to. Některé organizace vyžadují software, který je spolehlivý, a obvykle jej získají pro vestavěný software, někdy pro věci kritické z hlediska bezpečnosti, jako jsou vesmírné mise a řízení letového provozu. Software stále není dokonalý, ale ani to nejsou auta.

Zákazníci však ve svém softwaru požadují jiné kvality a většinou nejsou ochotni platit za software, který je možná méně funkční, jistě dražší a později se dodává jen proto, že je spolehlivější.

56
David Thornley

existuje mnoho tisíc dílů, které tvoří auto.

Kdyby byl tak jednoduchý počítač (a související software).

Počítač má jaký gigabajt paměti? Miliardy žabek? Terabajt disku? Bilióny „pohyblivých“ částí?

Tento software může mít spuštěny 10 s nebo 100 s tisíc řádků jednotlivých řádků kódu. Plus tolik (nebo více) v jednotkových testech a nástrojích.

Ne. „Auta jsou také komplexní“ je palanda. Software je mnohem, mnohem, mnohem složitější než auto.

25
S.Lott

Zásady, díky nimž fungují spalovací motory, a všechny komponenty, které tvoří auto, se v minulém století příliš nezměnily. Určitě došlo k evolučním vylepšením a hybridním automobilům, ale základní komponenty jsou stejné. Máte motor, pohonnou jednotku atd. Dokonce i koncepční automobily a vaše velmi drahé extrémně rychlé Bugatti Veyron jsou postaveny se stejnou základní strukturou. Stručně řečeno, konstrukce automobilu je dobře známý problém.

V kontrastu s vývojem softwaru.

  • Zákazníci nevědí, co chtějí, když začnou. Začnou mluvit o luxusním letadle, ale když si uvědomí náklady, které chtějí, abyste jej postavili za cenu skútrů poháněných nohou.
  • Design vozu trvá roky, než se dostane od nápadu k koncepčnímu vozu, a další roky se odtud dostanou k výrobě. Kdy jste měl naposledy ten luxus se softwarem?
  • Autodíly jsou odlitky z kovu, ale softwarové komponenty mohou často měnit tvar a rozhraní.
  • Výrobní proces je úplně jiný. U automobilů se kusy vyrábějí ve velkém množství a stejné kusy se používají v různých vozidlech. Se softwarem je téměř vše ručně vytvořeno, protože jinak se věci prostě nehodí.

Stručně řečeno, existuje řada důvodů, proč by auto bylo vnímáno jako „spolehlivější“ než software. Právě jsem přišel s párem.

20
Berin Loritsch

Auta jsou spolehlivá. Stejně jako většina softwaru.

Ale ... zakázková auta a zakázkový software, oba mají své problémy.

Jakýkoli skutečný automobilový nadšenec, který má své upravené svalové auto z roku 1970, drotáry a vyladění a má poruchy a všechny hloupé problémy, které by neměl, kdyby to nechal originální. Ale ... pak by neměl kompresor ...

19
CaffGeek

Protože vůz, který řídíte, byl vyroben mnohokrát, je proces výroby tak propracovaný, že stejné auto lze vyrábět na výrobní lince znovu a znovu.

Pokud by šlo o jedinečný komplexní řezací vůz Edge postavený od začátku, nebylo by nikde tak spolehlivé, například se podívejme na to, jak daleko je míra selhání u závodních vozů formule 1. Je běžné, že se jeden nebo dva rozdělí na závod.

Nový software je vždy jednorázový. To, co programátoři nikdy předtím nekódovali. Chcete-li získat opravdu vysokou kvalitu v tomto scénáři vyžaduje náklady, které je neúnosné pro většinu produktů. Každý netriviální nový software je ve skutečnosti prototypem.

Kromě toho je to jeden z hlavních důvodů, že aplikace tradičních technických technik na softwarové inženýrství je katastrofa.

16
Alb
  1. Výrobci automobilů nechají celé specifikace přibít, než začnou vyrábět „finální“ produkt.
  2. Uživatelé automobilů nemají sklon dělat hloupé věci, které návrháři neočekávali.
  3. Auta jsou „aktualizována“ pouze jednou ročně (obvykle), zatímco většina softwaru se očekává, že bude aktualizována mnohokrát ročně.

Mohl bych pokračovat, ale můj prohlížeč má pocit, jako by se zhroutil ...

13
Glen Solsberry

Ve skutečnosti existuje velmi jednoduchý důvod.

Software, který vydělává peníze, je software, který získává tržní podíl. Společnost, která uvádí na trh část softwaru ---, častěji než ne první bude ta, která získá většinu podílu na trhu, i když jejich software není nejlepším produktem na konkrétním trhu. .

V důsledku toho je důraz kladen na to, aby byl software vydán dříve a nedokonale, spíše než později a dokonalý.

10
Robert Harvey

Většina odpovědí se mi zatím líbí. Tady je moje rotace na to.

Náklady na selhání jsou vážnější u automobilů než u softwaru

Selhání vozu může potenciálně stát život. Dokonce i selhání vozidla ohrožující život představuje pro uživatele velmi viditelnou nepříjemnost. Selhání softwaru znamená, že nějaká špatná míza v podpoře výroby bude muset pracovat přesčas. A pokud je tato osoba zaměstnancem na plný úvazek, pak je to tak drahé. Ve skutečnosti je špatná kvalita a špatné řízení odměněno, protože bezplatné přesčasy skutečně snižují náklady na pracovní sílu za hodinu!

To samozřejmě záleží na druhu používaného softwaru (softwarové systémy poháněné zbraněmi, avionika nebo lékařské systémy by mohly mít také vliv na životy), ale auto stojí hodně peněz a je používáno dostatečně pravidelně, aby došlo ke ztrátě spolehlivosti docela hmatatelné a bolestivé. Selhání softwaru mají často zástupná řešení.

Další myšlenka: Auta se zdají spolehlivá, ale mají určité náklady na údržbu, které probíhají, i když auto funguje dobře a kulturně je to přijatelné a dokonce i hrdé výdaje lidí, kteří se starají o jejich vozidla. Software na druhou stranu je při instalaci často poškozen a často se musí časem měnit, ale kulturně nikdo nechce platit za údržbu.

5
Bernard Dy

Auta byla po většinu své historie docela nespolehlivá a určitě existuje křivka učení. Auta se vyrábějí ve velkém měřítku zhruba 60 let, zatímco software se vyrábí pouze ve velkém měřítku asi 20–25 let. Ve velkém měřítku mám na mysli v podstatě dost velké množství, které je kupují/používají, a je zde opravdu obrovská motivace vymyslet, jak zdokonalit postup pro jeho vytvoření.

4
dsimcha

Rád si představím Car jako aplikaci. Zatímco OS je cesta, na které běží aplikace.

Rozhraní mezi silnicí a autem je dobře definováno. Dobře testováno a je důkladně zkontrolováno zpětná kompatibilita (což je snadné, protože rozhraní je jednoduché). Ale i tak máte nějaké problémy se zpětnou kompatibilitou. Auta typu "Farrie" mají těžký běh na silnicích typu "bláto".

Přesto i vy potřebujete stejně jako silnice neustálou údržbu. Mosty ven. Auta nasadila sněhové řetězy a roztrhla silnice, jako je aplikace poškozená a poškodila disky a soubory používané OS.

Aplikace budou psány na jednom OS. Obecně však musí běžet různé verze OS (různé typy silnic). Vaše aplikace optimalizovaná na večeři tedy může běžet hladce a bez problémů, pokud je spuštěna na správném OS (hlavní silnice), zatímco na obecný (jednodušší) kód bude běžet dobře na všech typech silnic.

Rozhraní mezi aplikací a OS je definováno, ale mimořádně složité a vždy mírně kolísá. Zejména proto, že umožňujeme uživateli upravit svůj vlastní OS pomocí rozšíření. Pokud by vláda umožnila uživatelům upravovat silnice, došlo by k mnohem více nehodám.

Když začnete omezovat schopnost uživatele upravovat OS, spolehlivost aplikací se může stát téměř pevnou. Podívejte se na všechna tato zabudovaná zařízení. Nedovolujeme uživatelům, aby se přibližovali ke svému operačnímu systému a aby fungovali dobře a nepřetržitě 24/7 bez přerušení.

Takže bych řekl, že to není ten nespolehlivý software. Je to spíše jako říkat, že uživatelé z aplikací vykopávají díry na dálnici. Hele, vaše aplikace právě narazila do díry, kterou jsem vykopal minulý rok a zapomněl.

4
Martin York

To je hloupá otázka (ne od vás, ale od původní osoby).

Zní to jako můj otec (mechanik), který nenávidí počítače, ale celý den tráví na eBay.

Je to jako ptát se: „Proč je strom spolehlivější než můra?“.

Nejprve vlastním 30 (ano, 30+) počítačů a žádný z nich nebyl v obchodě. Právě jsem utratil 1400 dolarů za auto na opravy. Jděte spočítat počet autoservisů a počítačových oprav. Ještě jednou hloupá analogie.

Auta jsou vyrobena z oceli, počítače plastové. Auta pracují za všech povětrnostních podmínek, počítače určené pro vnitřní použití.

Můj Commodore 64 (26 let) funguje perfektně a nemá žádnou opravu. Obě moje vozidla (mladší než 10 let) byla opravena velmi rozsáhle. Ukažte mi auto s tisíci a tisíci hodin provozu, které je 26 let staré a stále běží na 100% stejně jako v případě nového závodu.

3
cbmeeks

Nejprve musí váš uživatel vědět, že v tomto světě je software tak spolehlivý, že si ani neuvědomuje, že existuje. Už jste někdy viděli televizní selhání? Já také ne.

Myslím, že hlavním důvodem je to, že software je nepodstatný. Být nepodstatný znamená, že vývojáři nevidí pokrok. Například, když jsem dělal auto, mohli byste mě vidět sestavit různé části a vypadalo to stále více jako auto; ale pokud se podíváte na mě programování, možná budu trávit hodiny kletbou na černé obrazovce se zeleným textem děláním podivných vzorů a pak najednou, když se vzor změní jen trochu, nadměrně budu.

Z tohoto důvodu si běžní lidé neuvědomují složitost softwaru. Když uvidí okno, myslí si, že vidí program jako celek, což je oh-tak-špatné.

Také software je mnohem, mnohem častěji silně přizpůsoben než auta. Když přizpůsobíte auto, nebudete proti jeho designu, protože by to bylo viditelně hloupé. Pokud je můj motor v přední části automobilu, bude jeho přesunutí dozadu velkou katastrofou. Protože je však software nepodstatný, pokud vás klient požádá, abyste udělali něco zcela proti návrhu, nedostanou žádný náznak (kromě vás, ale neposlouchají), že to, co dělají, je hloupé, a pak Všechno překvapí, že to nefunguje tak, jak se očekávalo.

3
zneak
  1. Nedostatek sdílení informací (programátoři létají samostatně nebo v malých skupinách - designéři automobilů pracují s propojenými týmy uvnitř velké korporace a všichni sdílejí své znalosti; pokud bychom všichni pracovali pro velké korporace, byli bychom všichni díky programování lepší od ostatních; to je také důvod, proč jsou věci jako open-source programy a online zdroje velmi důležité)
  2. Očekávání účastníků v terénu (je v pořádku, pokud je návrhář automobilů jen nepatrně užitečný po dobu prvních 5-10 let, ale pokud programátor vstoupí do rozhovoru a řekne, že ho nebude 5-10 let moc využívat, rozhovor skončil)
  3. Nedostatek penetračních testů (kvůli nedostatku finančních prostředků, problémům se zákonností atd .; výrobci automobilů však bourají auto za auto do cihlové zdi, mají větrné tunely, mají relativně jednoduché požadavky na výkon atd.)
  4. Transparentnost informací (nevíte, jak většina softwaru funguje; hádáte, nebo vycházíte z předpokladů založených na rozhovorech, tiskových zprávách, reklamě atd .; u automobilů je však většina věcí na místě, abyste se na ně mohli podívat)
  5. Inherentní zapouzdření znalostí (ten, kdo svařuje rám společně), nemusí znát matematiku za systémem řízení stability; programátoři musí být obeznámeni s tisíci nebo desítkami tisíc věcí, které průměrný člověk nezná, zatímco konstruktéři automobilů potřebují znát stovky nebo tisíce)
  6. Hmatatelnost (pomáhá, když ji vidíte)
  7. Age of Field (konstrukce vozidla je stará tisíce let; konstrukce motorového vozidla je stará více než 250 let [parní motory atd.])
  8. Kritičnost subsystémů (auta budou stále „fungovat“, i když mnoho jejich částí přestane fungovat - elektrické zámky, elektrická okna, HVAC, stěrače čelního skla, rozbitá okna, ztracené náboje, ploché pneumatiky [vložené nové], rádio, lehký nebo dva, vzdálené záznamy atd .; když se něco v počítači rozbije, je to často scénář SHTF)
  9. Vzájemná závislost (když se jeden počítač rozbije, není vzácné, že ovlivňuje stovky nebo tisíce dalších počítačů; když se jedno auto rozbije, je trochu vzácné, že jsou ovlivněna jiná auta - pokud jsou ovlivněna jiná auta, je to téměř vždy jen 1) -3)
  10. Deka viny (pokud jedna část počítače nebo jeden počítač z tisíců zlomí a bolí systém, vina se rozšíří na celý počítač, nebo ve druhém případě na celou síť počítačů; pokud vaše auto zasáhne auto s selhání brzdy, nebo pokud auto zastaví a nebude se restartovat po dálnici, je obviňována pouze jednotlivá část automobilu)
  11. Konečné versus nekonečné systémy (auta mohou mít jen tolik zabalených, a očekává se, že budou pracovat pouze v omezených podmínkách - např. Nejezdíte BMW po terénu, které dokáže udělat pouze vozidlo typu Jeep; s počítači, možnosti jsou však de facto nekonečné - stále jsou nová věci, nová API, nová OS, nové bezpečnostní díry, iPady, software pro mobilní telefony, nové, nové, atd.)
  12. Rozsah povinného souboru znalostí (osoba se 130-140 IQ se mohla naučit téměř vše, co je o autech vědět, ale mohla se naučit jen zlomek toho, co je o počítačích a programování vědět)
3
Michael

Jednoduchý důvod, proč je celá logika vadná:

Mechanická zařízení lze jednoduše redukovat na vstup/výstup; zvýšení počtu součástí k dosažení této I/O operace nemění I/O operaci. Systém tak lze plně pochopit.

Software na druhé straně má Input -> Process -> Output. Vzhledem k této povaze nelze systém zcela předvídat ani pochopit.

Donald Rumsfeld to řekl nejlépe:

"Jsou známy známé; existují věci, o kterých víme, že víme. Víme také, že existují známé neznámé; to znamená, že víme, že některé věci nevíme. Ale jsou zde také neznámé neznámé - ty, které nevíme, nevíme. “--ministr obrany USA Donald Rumsfeld

Souhrn:

  • Mechanické zařízení je systém, který má známé a známé neznámé,
  • Software má výše uvedené, ale také neznámé neznámé.
3
Darknight

Software je založen na bitech: 0 a 1. Auta jsou založena (většinou) na mechanických částech.

Mechanická část se může opotřebovat nebo chybně fungovat a stále pracovat. Vaše brzdy se opotřebují nebo se ventil dostane netěsný, ale auto stále většinou funguje, dokud ho nebudete moci opravit.

Software z velké části nemá něco jako postupné selhání. Funguje to nebo se zlomí. Dělení nulou není „téměř správné“; je to jen chyba. Když se pokusíte uložit na disk bez dostatečného prostoru, nemůžete tvrdě zmáčknout všechna data; prostě to nepůjde.

Nemyslím si, že software je nutně méně spolehlivý než auto, ale když software selže, selže okamžitě, ne postupně.

2
Kyralessa

Auta nejsou ve skutečnosti tak spolehlivá, jak si myslíte. Je to jen to, že chyby mohou zůstat skryté po dlouhou dobu (nebo ignorovány), aniž by způsobily selhání celé věci. Váš vůz vytéká olej a/nebo chladicí kapalinu? Ne? Jsi si jistá? Pravděpodobně jste špatně ... Pravděpodobně jen uniká velmi malé množství někde, co jste si ještě nevšimli ... Nyní to rozšířte na zavěšení, panely karoserie, interiér atd. Nemyslím si, že jsem někdy přesto narazil na auto, které jsem nemohl najít něco špatného. Drtivá většina částí je však nadbytečná pro dopravní dopravu. S počítačem to tak není. Téměř každá část počítače je kritická.

Je to stará analogová vs. digitální debata, právě přebalená. Digitální televize je skvělá, pokud je vše perfektní. V okamžiku, kdy se něco pokazí, zvukové koktání a video blokují, takže je k ničemu. Porovnejte s analogovou televizí, kde byste jen trochu zasyčeli nebo staticky snadno ignorovali.

1
Brian Knoblauch

Za prvé, samozřejmě, že některé sw jsou naprosto spolehlivé a auta - zejména britská a italská - nemusí být nutně tak spolehlivá.

Moje zkušenost s prací s automobilovým softwarem je taková, že jde o dvě věci:

  • Náklady na záruku. Pokud váš sw selže, restartujte jej. Možná podáte hlášení o chybě. Nebo použijte nákladnou smlouvu o podpoře. Pokud vaše auto selže, přivezete ho a budete požadovat, aby bylo opraveno v rámci záruky. To bude stát výrobce $ 100 a vyšší. Pokud by každé selhání sw stálo výrobce 2 $, jsem si naprosto jistý, že sw bude spolehlivější.

  • JD Powers (a další hodnocení kvality). JD Powers průzkumy ThingsGoneWrong (což by mohlo být cokoli). A pokud je toto hodnocení opravdu špatné, lidé si prostě nekoupí vaše auto, alespoň ne za dost peněz, aby dosáhli zisku. Pokud bychom měli JD Powers pro sw a lidé se o to opravdu starali, pak jsem si jistý, že sw bude spolehlivější.

Takže pokud vyrábíte nespolehlivá auta, záruční náklady rychle sníží vše, co získáte, a za několik let špatné kvality hodnocení znamená, že nebudete prodávat vůbec žádná auta. Pokud uděláte nespolehlivé sw, uživatelé si budou stěžovat a vy budete prodávat drahé smlouvy o podpoře.

1
user15497

Nevěřím, že auta jsou méně složitá. Ale i když je tomu tak, nemyslím si, že software je méně spolehlivý. Věřím však, že existují další důležité faktory, které vedou k nesrovnalostem v spolehlivosti softwaru:

  1. Abstrakce podílející se na Softwaru. To způsobuje, že tvůrci softwaru nepochopili, jak věci skutečně fungují. Postupem času se přidává stále více abstrakce. Například jazyk Assembly vám poskytuje přímé ovládání stroje. C je více abstrahován, ale stále blízko stroje. Java, C # a to, co přijde dál, silně abstraktují, co se ve stroji děje. Dalším příkladem je, pokud jste programátor, který chce pochopit, jak dochází k vytváření sítí na softwarové úrovni, pak byste měli vědět, že programovat s C, protože infrastruktura (jako software) je zapsána v C.

  2. Různé zkušenosti a Znalosti tvůrců vedou k různým výsledkům. Různí vývojáři vytvářejí software s různou spolehlivostí. Totéž lze říci o výrobcích automobilů. Rozdíl je v tom, že kdokoli, kdo může použít editor a kompilátor nebo dokonce jednoduše nainstalovat IDE (integrované vývojové prostředí)), může vytvářet software A zdarma. Chcete-li vyrobit auto, potřebujete obrovská investice, továrna (někteří dokážou vyrobit auto bez toho, aby ho používali, ale všude kolem vás nenajdete). Skutečnost, že vložíte obrovskou investici, znamená, že se pokusíte najmout to nejlepší v terénu „Stále existují problémy se spolehlivostí u automobilů. Pokud jste si toho vědomi, mnoho milionů automobilů je staženo z trhů za vážné [chyby]. V mém autě výrobce nahradí brzdové nůžky zdarma pro všechna zakoupená auta ve stejném roce. To je vážný problém a podle mého názoru ukazuje, že ani auta nejsou tak spolehlivá, jak říká váš klient.

  3. Chyby v softwar obvykle se uživatelům více zjevují než auta. Je to výsledek interaktivity a odezvy mezi uživatelem a softwarem. V autě věnujeme pozornost méně detailům, jako je „Automobil se zrychluje, když šlápneme na plynový pedál“, lámání, otáčení, světla, zrcadla, ... atd. V softwaru je s každým kliknutím/vstupem obvykle odpověď. Existuje tedy mnoho bodů, ve kterých může být software buggy a uživatel si to okamžitě všimne. Díky tomu je uživatel přesvědčen, že je méně spolehlivý než auta.

  4. Hacking And Attacks. Čím více se software používá, tím vyšší procento bude pod útoky hackerů. Můžete to porovnat s krádeží auta. Pro mě je také ohrožena spolehlivost vozu, když ji může otevřít někdo jiný, než je jeho majitel nebo klíč. Je však snazší pokusit se zaútočit na software než na auto, protože útočník není vidět. Když je tedy software kompromitován, lidé se spojují, že není spolehlivý, přestože je spolehlivý v tom, pro co byl vytvořen.

1
Saleh Al-Abbas

Spolehlivost a bezpečnost motorového vozidla je povinná. V mnoha (většině?) Zemích je ze zákona vyžadováno, aby měly minimální úroveň spolehlivosti a bezpečnosti a aby byly testovány na nejhorší scénář (ať už je to cokoli). Komerční software většinou není.

I když existují další právní důsledky pro software, je důležité si uvědomit, že pokud se software zhroutí pokaždé, když stisknete tlačítko "Uložit", pak je to prostě záležitost opravy/opravy a pak budete pokračovat. Pokud dojde k autonehodě pokaždé, když indikátor zapnete, je to mnohem horší. Není prostě tak důležité, aby aplikace Microsoft Outlook běžela bez neočekávaného selhání, protože pro SUV je spuštěna bez neočekávaného selhání.

Jak již bylo řečeno, existují i ​​další části softwaru, které mají stejnou nebo větší odpovědnost než mechanika automobilu. Letadla a systémy navádění raket musí být spolehlivé; jsou v sázce životy! Dalo by se doufat, že jsou přísněji testovány než průměrné motorové vozidlo.

1
Anthony

Myslím, že mám mnohem lepší analogii. Vezměte společnost, která staví sanitky podle specifikace zákazníka. Základní platforma (řekněme plně funkční a uliční RV-výřez s podvozkem) vyžaduje úpravy v několika bodech: rám, nabíjecí systém, hrdlo plnicího hrdla, zavěšení atd. Tyto modifikace musí být nejen legální, ale musí splňovat požadavky jurisdikce. při uspokojování přání zákazníka.

Pak si musíte postavit samotný sanitní orgán, který je také plný regulačních požadavků několika vrstev vlády a dalších orgánů. I když stále uspokojujeme přání zákazníka po nějakém zábavném uspořádání sedadel nebo úložném systému. A nezapomeňte, že máte stovky různých zákazníků z celého světa, kteří mají různý časový rozvrh nákupu a nasazení, z nichž nikdo nikdy neřekl: „Vezmu tucet víc, stejně jako ten poslední“, aniž bych také odeslal stránky výjimek, které často vyžadují úplné přepracování celé věci.

Auta? To je triviální. Koupíte to, co je postaveno, a nemáte žádný přímý dopad na žádný aspekt designu. Dokonce i váš výběr barvy je umělý, protože ve skutečnosti nemůžete určit něco, co již nebylo zkonstruováno a testováno. V určitém smyslu existuje pouze „trh“, nikoli „zákazník“. Tvrdil bych, že hotový software vyrobený pro určitý trh je obecně stejně spolehlivý jako vůz, který si vyzvednete v místním zastoupení.

1
user15456

Automobilový průmysl neuvolňuje pro testování „beta“ auto pro veřejnost, automobilový průmysl se nemusí starat ani o prostředí, ve kterém dodávají své výrobky, ale také si musím dělat starosti s mnoha dalšími věcmi. říkají, že softwarový průmysl se nejprve zásadně liší (jak všichni víme), takže spolehlivost a složitost jsou opravdu sugestivní. Podle mého názoru je auto tak složité než software, ale od té doby je snazší zjistit, co funguje nebo ne

  • Ve spodní části vozů nejsou virtuální, musí být snazší testovat (ale dražší)
  • Začali mnohem dříve než softwarový průmysl, i když to bylo méně lidí, nemůžete minimalizovat praxi a znalosti, které shromáždili. Softwarový průmysl je ve srovnání s ním stále dítě.
  • Celý automobilový průmysl je zavázán zákonem a etikou, aby neudělal automobil, který zabije jejich řidiče, zejména ty poslední desetiletí.

Takže prohlášení, že software je méně spolehlivý než auta, může platit pro mnoho druhů softwaru a zcela špatně pro ostatní oblasti (bezpečnost, letectví ...), můžete si být jisti, že software je alespoň nejspolehlivější než nejspolehlivější aut v této oblasti. Jednoduše proto, že tyto oblasti jsou kritické a z toho, co vím jen v této oblasti, se software může srovnávat s automobilovým průmyslem.

Což nás vede k tomuto: většina softwaru není v jejich doméně považována za kritickou. Pokud je to považováno za takové, máte spolehlivý software, jediným problémem, který najdete, jsou problémy spojené s prostředím (takže pokud jej můžete ovládat, prakticky nebudete mít žádný problém), nikoli samotný software. Většina softwarových editorů však v této kritické oblasti nefunguje, ale je samozřejmě povinna zajistit určitou úroveň kvality, ale je podle mého názoru více povinna dodat software co nejdříve. Kvalitní software však vyžaduje: dobrou správu projektů, spolehlivé specifikace, dobrý design a dobrou úroveň dovedností od těch, kteří v něm pracují (k jeho obnovení). To je jen proto, abychom to ani nemluvili o prodeji ...

To vše vyžaduje čas, a proto vyžaduje peníze. Neříkám, že dostanete to, co platíte za to, co říkám, většinu času, kdy produkujete do čeho investujete nikdy méně (s výjimkou případů, kdy jste zašroubovaní, ale pak nic neprodukujete). ..) a někdy i více ..

1
lollancf37

Software je mnohem složitější než auto, i když se auto skládá z tisíců součástí.

Pokud by bylo auto tak složité jako software, pak by všechny součásti automobilu závisely na všech ostatních komponentech automobilu a mnoho komponentů automobilu by bylo přímo spojeno s mnoha dalšími komponenty automobilu.

Všechna světová auta se stěží shodují s původním unixovým softwarem ve složitosti.

0
user15441

Je to jako všechno ostatní ... když to funguje, je vám jedno ... když je to zlomené (nebo nefunguje tak, jak chcete/očekáváte), na kterém vám záleží.

Myslete na letadla. Spousta lidí se bojí lidí, kteří se snaží Hijacka vyhodit do vzduchu. Ve skutečnosti je však počet negativních událostí ve srovnání s denními lety malý. (Existuje více letů za jeden den, kdy byly kdy uneseny nebo bombardovány .. sakra dokonce se pokusila být unesena nebo bombardována.)

Všechno bylo, když se podíváš a jak měříš.

0
Matthew Whited

Je to vlastně docela jednoduché. Auta jsou stará technologie. Jistě, že v těchto dnech jsou zvonky a píšťalky (ta přestávka), ale když se podíváte na časná auta - rozbili lot.

„Technologie“ za mechanickými částmi automobilů existuje už stovky let a motor s vnitřním spalováním je tu také dlouhou dobu, a když byly zavedeny, došlo k mnoha problémům.

Uvažujte, že problémy s pamětí jsou u některých našich spravovaných platforem téměř minulostí. Dejte software několik set let a necháme ho také přibít. Ve skutečnosti, vzhledem ke složitosti softwaru, si myslím, že jsme před křivkou.

0
Steven Evers

Kolik je návrhářů automobilů? 10 000 top? - jsou talentovaní a vědí, co dělají.

Kolik je softwarových programátorů? 30 milionů? - a mnoho z nich netuší, co dělají, například PHP programátoři, můžete se naučit PHP a napsat svůj první program za méně než pár hodin.

Pokud by měl software psát pouze 10 000 nejlepších programátorů, pak by byl stejně spolehlivý jako auta.

0
Czarek Tomczak

Moderní auta spoléhají na s/w. Když selže moderní automobil, například selže počítačový motor, jeho obvykle (i když ne vždy, ale obvykle), elektronika, která je to carked, ne s/w.

Zeptejte se jakéhokoli majitele moderního vozu s ECU v tom, jak dlouho jeho jízda před drahou poruchou. Budu ohromen, pokud dostanete 10 let. Moderní auta plná elektroniky a senzorů jsou ohromující nespolehlivý.

Pokud studujete teorii spolehlivosti, odpověď je oslepující. Všechno mechanické (očekávejte software) má spolehlivost v ustáleném stavu, což je míra selhání, když se nachází mimo oblasti úmrtnosti kojenců a opotřebení. Míra selhání konečné položky je součtem míry selhání součástí. Přidejte další části: souhrnná míra selhání se stává vyšším číslem. Výzvou pak je, aby byla míra selhání všech těchto komponent opravdu nízká.

Pokud jde o věci, jako jsou rozvodové řemeny a opotřebení válců a kyslíkové senzory, které se plní keců, konektory se ohmické a dráty se lámají v důsledku vibrací - existují techniky, které lze použít ke snížení míry selhání. Cena se také zvyšuje.

Na druhé straně má software konstantní poruchovost. Navzdory obtížnosti občasného nalezení závad je nakonec veškerý software klobásou. Vstupy -> Do věci -> Výstupy. Někdy ORDER vstupů a kombinace vstupů vedou k selhání s detekovatelnými režimy. Když se to stane, zjistili jste svou vadu, napravíte ji a pokračujete dál.

Software, který nemá (známé) závady, má účinně poruchovost 0. Bude to fungovat navždy bez selhání. (Střední doba mezi poruchami = 1/míra poruch). Hardwarová platforma nejprve selže.

Software s vadami se může spouštět pouze do doby, než správná kombinace vstupních podmínek v průběhu času způsobí, že se vada projeví.

FALLACY v tom všem je pokusit se porovnat míry selhání fyzických věcí (způsobené opotřebením, migrací kovů v IC, vniknutím vody, vibrací atd.) S mírou selhání toho, co je v podstatě konečný stavový stroj, který jednoduše dělá přesně co jí instrukční sekvence říká, aby udělala.

(Dokonce i věci jako alfa-částice obracející bity v RAM je fyzický fenomén, nikoli softwarová vada.) Způsob, jak zacházet s takovým zjevným, může být softwarovou vadou, ale pamatujte, že ošklivá alfa částice byla jen dalším vstupem do softwaru.)

0
quickly_now

Rozdíl mezi softwarem a auty spočívá v tom, že aby si vývojáři softwaru zachovali rozumnost, musí být přesné duplikáty softwaru vedeny všemi uživateli softwaru a aby výrobci automobilů udržovali zdravý rozum, musí akceptovat, že všichni jejich uživatelé budou řídit výrazně odlišná auta, protože způsob, jakým řídíte auto, mění auto, ale způsob, jakým používáte software, jej nemusí nutně změnit.

Na druhou stranu,

Pokud jste měli nějaký způsob, jak zkontrolovat olej ve vašem softwaru, měli byste vědět, kdy to selže.

Pokud byste měli nějaký způsob, jak vyměnit olej ve vašem softwaru, pravděpodobně byste mohli prodloužit jeho životnost o několik měsíců.

A zbytečně rozšířit analogii:

Náplasti nemění olej, nahrazují netěsnící těsnění.

Aktualizace nemění olej, opravují brzdy.

Uvolnění nemění olej, je to spíš jako přidávání zapalování bez klíče.

0
Peter Turner

Auta, která se porouchají, nejsou tolerovatelná. Také to může ohrozit životy. Rozdělení softwaru je tolerováno a uživatelé jej obcházejí nebo jej pouze akceptují. Neexistuje velká poptávka po softwaru bez chyb.

Také software má tendenci být přizpůsoben, nemáte 10000000 různých modelů aut. Řekl bych, že wikimedia je spolehlivý a spousta PPL používá tento software. Dalo by se tedy říci, že mnoho lidí používá bezchybný nebo spolehlivý software. (wordpress, různé ovládání zdroje, mysql a sqlite jsou docela spolehlivé atd.)

0
user2528

Softwarové programy jsou matematické a logické objekty, zatímco automobily jsou skutečné objekty.

Kromě toho můžete snadno vědět, kdy má auto problém a jaký je problém, zatímco u softwaru to může být mnohem obtížnější: představte si někoho, kdo má problém s počítačem a někoho, kdo má problém s autem; tato osoba může lépe vědět, co se děje, protože auta jsou méně abstraktní než počítače.

Neříkám, že počítače jsou těžší pochopit: auta také zahrnují mnoho fyzikálních zákonů, jako je termodynamika, elektronika, chemie.

Můžete také extrapolovat toto srovnání a říci: „Proč je kladivo spolehlivější než sekretářka?“.

Nemyslím si, že otázka je opravdu relevantní, ale myslím, že to ukazuje velmi dobře, jak nedostatek dobrého matematického vzdělání může ovlivnit pochopení určitého druhu systému.

0
jokoon