CategoryProgramowanie

Ile kosztuje system safety-critical?

Zwykle przyjmujemy, że koszt wytworzenia systemu safety-critical spełniającego wymagane normy jest dziesięciokrotnie wyższy, niż zwykły projekt posiadający te same wymagania funkcjonalne. Po przeczytaniu poprzednich części serii powinniście mieć całkiem dobre wyobrażenie skąd biorą się dodatkowe koszty. W tym artykule omówię koszty developmentu, zewnętrznego kodu i narzędzi.

Continue reading

SOUP – Wykorzystanie zewnętrznego softu w safety-critical

W większości projektów, gdy mamy możliwość wykorzystania jakiegoś istniejącego rozwiązania, w ogóle się nie zastanawiamy. Dużo publicznego kodu znajdziemy na GitHubie, a w JavaScripcie wychodzi tyle nowych bibliotek, że są one nawet częścią pijackiej gry. Jak już pewnie się domyślacie – w systemach safety-critical sytuacja jest zgoła odmienna. Użycie zewnętrznego kodu podlega specjalnym procedurom i w normach nazywane jest właśnie tytułowym akronimem SOUP, czyli Software of Unknown Provenance, lub Software of Uncertain Pedigree. Nazwy te od razu zwracają uwagę na podstawowy problem tego softu – jego nieznane pochodzenie, historię i proces wytwarzania.

Continue reading

Analiza ryzyka w systemach safety-critical

Było już o technikach wykorzystywanych na poziomie projektu i kodu oraz o wpływie języka programowania na bezpieczeństwo. Dzisiaj odpowiemy sobie na pytanie w jaki sposób zarządzać ryzykiem, wykrywać potencjalnie niebezpieczne zachowania i dodawać odpowiednie środki zaradcze do projektu.

Continue reading

Języki programowania w safety-critical

W poprzednim artykule opisywałem ogólne techniki zalecane przy developmencie systemów safety-critical. Dzisiaj natomiast przyjrzymy się bliżej zaleceniom dotyczącym języków programowania. Wiemy już, że język używany w tego typu systemach powinien być kompilowany i silnie typowany. Jakie jeszcze wymagania powinien spełniać? Jakie języki wykorzystywane są w praktyce? Poniżej znajdziesz odpowiedzi na te pytania.

Continue reading

Techniki zalecane przy tworzeniu systemów safety-critical

Jak wspomniałem w poprzednim wpisie, normy definiują różne poziomy bezpieczeństwa w zależności od możliwych skutków błędnego działania systemu. Tym poziomom odpowiadają konkretne wskaźniki statystyczne. O ile sprawdzają się one w przypadku układów psujących się w sposób łatwy do opisania prawdopodobieństwem – jak na przykład części elektroniczne – to soft zawiera częściej błędy systematyczne, czyli po prostu bugi. Poza tym wymaganych statystyk nie da się zmierzyć, ani przewidzieć na etapie projektowania. Zamiast tego tworząc software powielamy pewne rozwiązania, które sprawdziły się w istniejących systemach. Polecane rozwiązania są często opisane w normach. Przyjrzymy się więc dzisiaj praktykom zalecanym przez normę kolejową EN50128.

Continue reading

Poziomy bezpieczeństwa w systemach safety-critical

Nie każdy system jest tak samo krytyczny dla bezpieczeństwa. Nawet jeżeli wiele różnych systemów znajduje się na przykład w samolocie, nie oznacza to, że każdy z nich został wykonany wykorzystując tak samo rygorystyczne techniki. W końcu inaczej podejdziemy do tworzenia systemu sterowania lotem, a inaczej do systemu infotainment wyświetlającego pasażerom filmy podczas lotu. W tym artykule przyjrzymy się jakie poziomy bezpieczeństwa zostały zdefiniowane w różnych normach i czym się kierowano przy ich definiowaniu.

Continue reading

V-model – proces wytwarzania systemów safety-critical

Analiza błędnie działających systemów safety-critical takich jak Therac-25, czy Ariane-5, a także doświadczenie z wielu projektów zakończonych sukcesem doprowadziły do konkluzji, że same umiejętności inżynierów to za mało, aby zapewnić niezawodność systemów. W tym celu niezbędny jest odpowiedni proces wytwarzania oprogramowania. Takie procesy zostały opisane w normach regulujących wytwarzanie oprogramowania dla urządzeń medycznych, samolotów, pociągów, czy elektrowni atomowych. Większość z tych norm opiera się na tym samym procesie zwanym V-modelem. W tym artykule omówię jego założenia.

Continue reading

Ariane 5 – int overflow, który wysadził w powietrze rakietę

Dzisiaj opowieść o kolejnym znanym bugu, który miał ogromne konsekwencje. Podobnie jak w przypadku Therac-25, analiza katastrofy rakiety Ariane 5 przyczyniła się do poprawy procesów wytwarzania systemów safety-critical.

Continue reading

Therac-25, czyli błąd w sofcie medycznym powodujący śmierć pacjentów

W dzisiejszym wpisie omawiam najbardziej znany przypadek błędu systemu safety-critical z branży medycznej prowadzący do ciężkich obrażeń i śmierci pacjentów. Został on wnikliwie przeanalizowany  teraz służy jako case study w różnego rodzaju materiałach o systemach safety.

Continue reading

Czy na pewno stać Cię na oszczędności w projekcie?

Ostatnio na portalu embedded.com zaczęła pojawiać się seria artykułów omawiających 10 najczęstszych problemów w projektach embedded napisana przez Jacka Gannsle. Pierwszym omówionym zagadnieniem były złudne oszczędności (link  tutaj). Czytając artykuł zgadzałem się praktycznie z każdym słowem, bo sam obserwuję to samo praktycznie od początku kariery zawodowej. Z resztą nie jest to coś specyficznego tylko dla systemów embedded, czy branży IT, Krótkowzroczne podejście do oszczędności jest chyba ogólnoświatowym standardem i objawia się na wielu płaszczyznach. We wpisie postaram się rozwinąć tę myśl, chociaż będę się trzymał przykładów z IT.

Continue reading

© 2019 ucgosu.pl

Theme by Anders NorénUp ↑