Portál AbcLinuxu, 4. května 2025 20:53
V minulých dnech jsem se zase královsky pobavil. To když odborník na slovo vzatý, ministr dopravy Milan Šimonovský, komentoval závadu u (dnes již nechvalně proslulých) vlaků Pendolino. Věta ve smyslu "to už se po opravě znovu nerozbije, to je chyba v softwaru" mě prostě dostala. My softwaráři víme své...
Softwarové závady se narozdíl od těch hardwarových špatně hledají. Tedy alespoň tehdy, nejedná-li se o špatně naprogramované hradlové pole. "Železo" lze většinou nějak vyzkoušet, změřit apod., nezřídka se závada projeví i druhotnými vnějšími znaky (kouř, součást je na dva kusy atd.). Ne tak software - tam se každá chyba hledá obtížně. Přesto si mnoho lidí myslí, že software je něco báječně jednoduchého, co každý zvládne levou zadní (což je pravděpodobně jeden z důvodů, proč lidé nemají výčitky svědomí při pirátském používání programů).
Laik zejména obvykle nezná pojem zavlečená chyba. Neví tedy, že při opravě jedné zcela banální chybičky se mohou do programu dostat chyby mnohem většího kalibru - zejména po několika dnech a nocích strávených hledáním té drobné chyby. Takže ano, software se skutečně nerozbije (on se nerozbil ani předtím), ale vždycky v něm bude aspoň jedna chyba (to je známé pravidlo). Proto ani oprava oné chyby (či spíše více chyb) nezaručí, že Pendolina skutečně budou bezproblémově jezdit.
V souvislosti se závadou na Pendolinech si neodpustím ještě jedno rýpnutí: Které prase navrhovalo architekturu toho systému? Jak je možné, že při chybě přestane fungovat úplně všechno (kromě brzd, které se automaticky aktivují)? Když už celý vlak řídí jediný fyzický počítač (což není úplně nejštastnější), jak je možné, že není zajištěna úplná izolace jednotlivých subsystémů? Bohužel neznám detaily, ale pokud běží každý subsystém v jednom kontejneru, proč se musí vždy odstavit všechno? Nebo je chyba v hostitelském systému, který by měl být "rock-stable"? Nebo subsystémy skutečně nejsou dostatečně izolované? Nebo...
Otázek je mnoho, ale odpovědi se asi nedočkám. Do sofwarového oddělení Alstomu nevidím, zdrojové kódy k softwaru mi také asi neposkytnou (i když bych je docela rád viděl). Zbývá mi tedy jen útěcha, že České dráhy neprovozují leteckou dopravu a neobjednaly si letadla stejným způsobem, jako to učinily u Pendolin.
Tiskni
Sdílej:
chyby v sw proti tomu prochazka ruzovym sademZejména u real-time systémů, kdy se chyba projeví třeba jen při splnění nějaké naprosto bizarní race condition
Když mám doma problém se zásuvkou, také kvůli tomu nevypnu světelný okruh.Když je problém se zásuvkou, může se docela klidně stát (a také zcela běžně stává) že "vyletí" hlavní jistič, tedy i světelný okruh. Někdy dokonce celý dům. Že by všichni elektrikáři za posledních 100 let byli pitomci? Spíš je ošemetné se vyjadřovat o tom, jak to mají špatně oddělené když nevíme vcelku nic o tom co selhalo. Navíc údaje jsou rozporné a nejspíš se ve zprávách míchá několik poruch dohromady.
Když je problém se zásuvkou, může se docela klidně stát (a také zcela běžně stává) že "vyletí" hlavní jistič, tedy i světelný okruh. Někdy dokonce celý dům.Mluvím o problému se zásuvkou (obecně), ne o zkratu. Pokud něco nefunguje, a je potřeba vypnout proud do té zásuvky, stačí vypnout příslušný okruh. Jinak když už jsme u toho - záleží samozřejmě na požadavcích na nezávislost okruhů. Např. lékaři by měli určitě radost, kdyby jim během operace najednou zhaslo světlo jen proto, že vedle na sesterně rychlovarná konev vyzkratovala okruh. Tam se to musí řešit důsledně, včetně použití UPS atd.
Spíš je ošemetné se vyjadřovat o tom, jak to mají špatně oddělené když nevíme vcelku nic o tom co selhalo. Navíc údaje jsou rozporné a nejspíš se ve zprávách míchá několik poruch dohromady.To je. Nedostatek informací vždy vyvolává spekulace. Vycházím z toho, co jsem se dozvěděl z médií, žádné zákulisní informace nemám. Nicméně do Pendolina mě hned tak někdo nedostane, ani kdyby jezdilo zadarmo.
Skutečně kvalitní certifikovaný hostitelský systém No nic.Nesměj se tomu - ona to skutečně není legrace. Získat certifikaci třeba pro DO-178b není vůbec jednoduché, a už vůbec ne levné. Uvedená certifikace je pro letectví, požadavky pro pozemní dopravu by tedy nebyly vyšší. Jen pro informaci: Microsoft u své řady Windows Embedded přímo zakazuje použití k podobným účelům.
Stát se může kdeco a ono je opravdu bezpečnější to při chybě i jediné součásti sestřelit raději všechno.Takže kdyby MP3 přehrávač, který bude součástí takového systému, nemohl přečíst ID3 tag, bude nejlepší sestřelit všechno, co kdyby to ovlivnilo něco jiného
Já sem zase slyšel, že je chyba v nějakém pomocném měniči (nebo měniči pro pomocné pohony), či co. Asi tam narvali polovodiče z CKD :o))
Z.H.
On ten software je jako hodinový strojek, taky musí vše zapadnout do sebe.
Navic unittesting může bejt automatizovanej.Může, ale musí být předem jasné, co se bude testovat (musí být naprosto přesně dány požadavky). Už tady to často ztroskotá. Kromě toho, řada chyb (těch nejzáludnějších) se tak stejně odhalit nedá.
Kromě toho, řada chyb (těch nejzáludnějších) se tak stejně odhalit nedá.Máš na mysli nějakou konkretní případ kterej nešel odhalit unit testem? To mě zajíma.
Testovat se bude ta funkčnost která se píše. Nebudu psat testy pro něco co tam neni a naopak.Jenže to jsme u toho. V praxi to vypadá většinou tak, že požadavky jsou mlhavé a během implementace se několikrát mění. U real-time systémů by k něčemu takovému rozhodně nemělo dojít, ale moc bych se nedivil, kdyby docházelo.
Máš na mysli nějakou konkretní případ kterej nešel odhalit unit testem? To mě zajíma.Ano, třeba v případech, kdy se provádí operace, pro kterou je vymezen časový úsek, během kterého se musí bezpodmínečně dokončit. Podle všech teoretických předpokladů by se to mělo stihnout s rezervou, v praxi ale najednou dojde k tomu, že se to nestihne. A to třeba jen proto, že volání nějaké funkce OS trvalo výrazně déle než kdykoli předtím. Unit test lze aplikovat na součásti vlastního programu, ale u OS se musí spoléhat na poskytnutou specifikaci. Proto to tady nemusí odhalit všechny chyby (chyba může být totiž právě v tom, že se nevhodně - nebo třeba zbytečně - volá nějaká funkce systému).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.