Android

Jak uniknąć problemów z oprogramowaniem

Week 10 Day 4 //Crazy At-Home CARDIO + ABS Workout

Week 10 Day 4 //Crazy At-Home CARDIO + ABS Workout

Spisu treści:

Anonim

W tej erze cyfrowej musieliście słyszeć o gigantach mediów społecznościowych, takich jak Facebook i Twitter oraz platformach e-commerce, takich jak Alibaba i Amazon. Te strony internetowe działają w oparciu o różne pakiety oprogramowania. Programy te całkiem szczerze zmieniły sposób, w jaki pracujemy, myślimy i żyjemy.

Poza tym wiele urządzeń, które wcześniej miały charakter wyłącznie mechaniczny, jest teraz kontrolowanych przez oprogramowanie. Na przykład termostaty były kiedyś urządzeniami elektromechanicznymi. Jednak obecnie w dużej mierze polegają na oprogramowaniu.

Jednak błędy oprogramowania mogą być dość problematyczne, szczególnie z powodu naszego większego polegania na nich podczas codziennych czynności. W rzeczywistości zdarzało się, że oprogramowanie nie spełniało zamierzonego celu, co prowadziło do nieprzyjemnych rezultatów.

, mówimy o 4 przypadkach, w których wydajność oprogramowania znacznie spadła, i jak uniknąć takich problemów z oprogramowaniem.

Przeczytaj także: 10 powodów, dla których nie powinieneś spieszyć się, aby kupić iPhone'a X.

1. Awaria 911 US Multi-State

911 to usługa krytyczna, która umożliwia kontaktowanie się z personelem ratunkowym w razie potrzeby. Czasami skontaktowanie się z dyspozytorami ratunkowymi za pośrednictwem 911 może dosłownie odróżnić życie od śmierci.

Dlatego katastrofą było, gdy 9 kwietnia 2014 r. 911 routing połączeń zawiódł w siedmiu stanach USA, w tym w Kalifornii, na Florydzie, w Minnesocie, w Karolinie Północnej, Pensylwanii, Karolinie Południowej i Waszyngtonie.

Awarię tę spowodował zapobiegający błąd kodowy, który wystąpił w centrum zarządzania połączeniami alarmowymi w Kolorado, które było własnością Intrado.

2. Uziemienie floty United Airlines

W lipcu 2015 r. United Airlines został zmuszony do uziemienia całej swojej floty samolotów z powodu usterki oprogramowania. Wpłynęło to na ponad 4900 lotów na całym świecie i spowodowało, że wielu pasażerów pozostało na lotniskach i było oczywiście sfrustrowanych.

Prawdopodobnie miało to również wpływ ekonomiczny, ponieważ linie lotnicze musiałyby zrekompensować wielu pasażerom niedogodności. Prawdopodobnie odbyło się także kilka ważnych spotkań biznesowych, które zostały spartaczone z powodu uziemienia.

3. Wadliwe działanie pedału przyspieszenia Toyota Camry

We wrześniu 2007 r. Jean Bookout jechała autostradą międzystanową nr 69 w Oklahomie z pasażerką Barbarą Schwarz, kiedy miała trudności z kontrolowaniem swojej Toyoty Camry.

Próbowała podnieść nogi z przepustnicy, ale samochód nadal przyspieszał. Pedał hamulca nie zatrzymał samochodu i musiała użyć hamulca awaryjnego.

Niestety spowodowało to, że samochód wjechał w nasyp. Schwarz zmarł w wyniku tego i Bookout był hospitalizowany przez pięć miesięcy z powodu poważnych obrażeń.

Spekulowano, że wypadek miał miejsce z powodu kilku niedociągnięć w kodowaniu, które doprowadziły do ​​awarii zadania w procesorze Camry. Ten procesor sterowałby niezwykle dużą liczbą funkcji, w tym zapłonem, przepustnicą i tempomatem.

Kod Toyoty stał się plątaniną bałaganu po kilku latach wprowadzania nowych kodów na stare. Jest to zwykle określane jako „kod spaghetti”.

Kod spaghetti jest niepotrzebnie skomplikowany i prawie uniemożliwia znalezienie błędów. Co więcej, Toyota naruszyła także kilka zasad bezpieczeństwa podczas kodowania. Należy zauważyć, że nie był to pojedynczy przypadek niezamierzonego przyspieszenia w Toyocie.

Jednak wypadek Bookouta ujawnił ten problem i zwrócił uwagę na wady Toyoty w procesie tworzenia oprogramowania. Stwierdzono nawet, że istnieje ponad 10 milionów sposobów na potencjalne niepożądane przyspieszenie, w oparciu o strukturę kodu Toyoty.

Awaria gniazda termostatu

Nest to firma należąca do Alphabet, która produkuje inteligentne termostaty. Te termostaty są całkiem sprytne i pozwalają użytkownikom kontrolować temperaturę w swoich domach za pomocą smartfonów.

Zeszłej zimy termostaty Nest doświadczyły usterki w postaci wadliwej aktualizacji oprogramowania, która spowodowała wyczerpanie się baterii. Niestety ten błąd wystąpił w środku zimy, przez co chwilowo kilku użytkowników było bez ciepła. To zdecydowanie coś, czego nie chcesz wydarzyć się o tej porze roku.

Zobacz dalej: Autoportrety nie są tak trywialne, jak w przypadku mediów społecznościowych

Krótka analiza problemów z oprogramowaniem

Podejścia takie jak projektowanie oparte na modelach i TLA + pozwalają programistom uzyskać szerszy obraz działania ich oprogramowania.

Brett Victor, wybitny informatyk, uważa, że ​​istnieje rozdźwięk między programistami a problemami, które próbują rozwiązać za pomocą kodów.

Z powodu tego rozłączenia programiści mają trudności z wyobrażeniem sobie, co próbują wprowadzić do kodów. Victor uważa, że ​​jest to jeden z czynników przyczyniających się do tego, że oprogramowanie jest pełne błędów.

Jest jednak nadzieja. Podejścia takie jak projektowanie oparte na modelach i TLA + pozwalają programistom uzyskać szerszy obraz działania ich oprogramowania.

Projektowanie oparte na modelach, jak sama nazwa wskazuje, umożliwia tworzenie oprogramowania za pomocą modeli wizualnych. TLA +, skrót od Temporal Logic of Actions, to język przeznaczony do pisania specyfikacji programu komputerowego. Wielką zaletą TLA + jest to, że pozwala on na wyczerpujące testy i weryfikację oprogramowania przed jego opublikowaniem.

Zarówno wzornictwo oparte na modelu, jak i TLA + już dowiodły swojej soli. Esterel Technologies, firma zajmująca się tworzeniem oprogramowania, wykorzystuje projektowanie oparte na modelach do tworzenia oprogramowania o kluczowym znaczeniu dla bezpieczeństwa, podczas gdy TLA + był używany przez Microsoft do naprawienia możliwego katastrofalnego błędu Xbox, a także przez Europejską Agencję Kosmiczną do przepisywania kodów dla sondy, która wylądował na komecie.

Proces pisania kodu jest wysoko ceniony przez programistów. Wiele z nich jest po prostu zaintrygowanych procesem pisania kodów. Dlatego wyzwaniem jest, aby niektórzy programiści zaakceptowali takie podejścia, jak projektowanie oparte na modelach i TLA +. Podejścia te są często postrzegane jako ściśle akademickie, bez realnej opłacalności. Jednak zmiana poglądów musi nastąpić jak najwcześniej.

Przeczytaj także: Pchamy nasze dzieci w kierunku ślepoty

Końcowe przemyślenia

Oprogramowanie jest coraz częściej wykorzystywane w aplikacjach wymagających wbudowanych środków bezpieczeństwa. Na całym świecie należy wprowadzić lepsze metody projektowania oprogramowania, ponieważ takie aplikacje są niezbędne w naszym życiu.

Procesy takie jak automatyzacja w dużej mierze polegają obecnie na oprogramowaniu, ale jeden błąd w wierszu kodu może prowadzić do poważnych niepowodzeń, jak pokazują powyższe przypadki.

Teraz wyobraź sobie, że w tych aplikacjach jest włączona sztuczna inteligencja (AI). Sztuczna inteligencja sama w sobie jest dość przerażająca bez usterek oprogramowania. Dodaj błędy do miksu i nie wiadomo, co może się stać.

Jest tu jednak srebrna podszewka. Przy odrobinie pracy i kilku nowych narzędzi możemy ulepszyć oprogramowanie i sztuczną inteligencję, projektując je solidniej i testując na stadninach.

Miejmy nadzieję, że zainteresowane władze poważnie podchodzą do tego krytycznego problemu, abyśmy mogli w pełni wykorzystać oprogramowanie, ale tylko w celu budowania bezpieczniejszej i inteligentniejszej przyszłości.

Zobacz dalej: Sztuczna inteligencja: rodzaje i przyszłość dla ludzi