-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.tel
efonica.de!telefonica.de!weretis.net!feeder7.news.weretis.net!eternal-september
.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-fo
r-mail
From: heby <h...@p...onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: Ada Tutorial - w Instytucie Lotnictwa
Date: Fri, 10 May 2019 20:33:15 +0200
Organization: A noiseless patient Spider
Lines: 119
Message-ID: <qb4g5e$4s8$1@dont-email.me>
References: <c...@g...com>
<btKtE.25850$wd2.16727@fx24.fr7>
<9...@g...com>
<qasr5t$7i2$1@dont-email.me>
<b...@g...com>
<qav3qi$qv$1@dont-email.me>
<0...@g...com>
<qb1ju2$hsi$1@dont-email.me>
<d...@g...com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 10 May 2019 18:33:19 -0000 (UTC)
Injection-Info: reader02.eternal-september.org;
posting-host="f10f322605eb5d44a142b19f15d3f199"; logging-data="5000";
mail-complaints-to="a...@e...org";
posting-account="U2FsdGVkX1+nnCgdShUmN4kMyLQu3MO3"
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
Thunderbird/60.6.1
Cancel-Lock: sha1:cPYvwibYZuAkFJefzV9wkaD0054=
In-Reply-To: <d...@g...com>
Content-Language: en-US
Xref: news-archive.icm.edu.pl pl.comp.programming:213500
[ ukryj nagłówki ]On 10/05/2019 08:03, Maciej Sobczak wrote:
>> Nie, tu padło jakieś hasło "C++ zachęca do pisania w stylu "write
>> once, debug endlessly"". Problem w tym że to jest walidne w każdym
>> języku a w c++ z roku na rok o dziwo coraz mniej.
> Tak. Oczywiście potrzeba, żeby programiści z roku na rok też robili postępy w tym,
jak korzystają z tego języka.
O tym piszę od początku jako elemencie niezbędnym obok bezpiecznego języka.
>>> Niezupełnie. W takich systemach może być wymaganie na pokrycie testami każdej
ścieżki.
>> Nie. W typowym systemie nie wymaga się pokrycia *każdej* ścieżki, wymaga
>> się pokrycia określonego procentu.
> Co to jest "typowy system"?
Taki który jest na tyle typowy że produkuje się do niego bardzo, ale to
bardzo drogie narzędzia do kontrolowania procesu produkcji. Zacznij od
pojęcia "test plan".
https://en.wikipedia.org/wiki/Test_plan
> Bo w konteście całej ludzkiej aktywności programistycznej, w ogóle wymaganie
weryfikacji czegokolwiek jest niszowe.
Jeśli to coś miga diodą to masz rację. Ale jak już steruje czymkolwiek
to przegapiłeś rewolucję. Nie wejdziesz na rynek aplikacji krytycznych
bez bardzo rozbudowanego mechanizmu weryfikacji który sam podlega
regorystycznej weryfikacji.
> A jak jesteśmy w niszach, to trudno mówić o "typowym systemie".
Typowy system critical safe. Nikt tu nie mówi o pisaniu migania diodą i
narzekania że wyjątki są do tego kiepskie.
> W niszach są standardy i procesy. Nie spotkałem wymagań w procentach pokrycia.
Poczytaj o testplanach w okolicy pojęcia IpCore i programowania hardware.
>> Ba, wymaga się pokrycia nie tylko
>> ściezki wykonywania kodu, ale np. zbioru wartości danych zmiennych.
> Też w procentach?
Tak. Np. ze wszystkich 2^32 adresów IP przetestowaliśmy 5% i wydają się
działać w duperelowatym kawałku kodu do migania diodą jak przyjdzie
pakiet broadcast.
>> Jeśli masz kilkaset tyś lini kodu to nie jest mozliwe pokrycie go w 100%
> No to może za dużo jest tych linii? Albo ktoś je napisał a dopiero potem
zorientował się, że warto by zrobić jakąś weryfikację. To niedobrze.
Nie, weryfikacja powstaje *zanim* napiszesz kod. Tylko że ludzie piszący
wymagania wiedzą że coś jest nierealne do osiągnięcia jak 100% pokrycia
itd itp. Zarządza się ryzykiem.
> Trochę się motasz. Przedsionek serca to system krytyczny. Miganie diodą też nim
może być, zależy co to za dioda.
> A jeśli masz system, w którym ktoś napisał kilkaset tyś. linii a potem się
zorientował, że nie może ich pokryć
Zorientował się przed napisaniem kodu. Oszacował ryzyko, w każdym
punkcie systemu inaczej. Ryzyko mikrokernela jest wysokie i tam stopień
pokrycia i wymagania co do jakosci są wyższe. Dla sterownika wentylatora
nie są tak wyśrubowane a do sterownika poświetlenia klawiatury są niskie.
>, to może jednak ten system od samego początku nie był tak bardzo krytyczny i tylko
ludzie sobie dodają fasonu twierdząc, że jest.
Nie dalej nie czaisz. Obecnie pisanie systemów krytycznych podlega pod
bardzo restrykcyjne zasady. W nich samego pisania jest mało, znacznie
więcej jest dokumentowania wymagań, śledzenia zmian, akceptacji,
odpowiedzialności itp itd tylko że w przeciwieństwie do banków tutaj
całosć procesu jest automatyzowana w miarę możliwości w całości.
>> Do testowania pokrycia stosuje się automatykę.
>> Ona widzi wyjątki tak samo jak logjmp.
> Nie. Nie widzi.
> Cytat ze standardu do F-35 (bo tam zaczęliśmy):
> "
> AV Rule 208:
> C++ exceptions shall not be used (i.e. throw, catch and try shall not be used.)
> Rationale: Tool support is not adequate at this time.
To trzeba zmienić tool.
> Problem w tym, że nadal jest "not adequate". I bardzo możliwe, że zawsze tak
będzie.
Mało porawdopodobne. Standardy tego typu powstają kiedy obecni
użytkownicy szczali jeszcze w pieluchy. Wystarczy zauważyć że w ciągu 10
lat projkekt LLVM z pomysłu stał się praktycznie kombajnem do
weryfikacji i to zaskakującej jakości jak na projekt "akademicki".
> Zmartwię Cię. Wymaganie pokrycia dotyczy kodu obiektowego a nie źródłowego. Na tym
poziome nie ma już wiedzy o tym, który kawałek kodu był generyczny a który nie.
I źródłowego, i wynikowego i każdego innego który ma wpływ na
bezpieczeństwo.
Przykładowo narzędzia do weryfikacji potrafią powiązać dowolną linijkę
kodu źródłowego z wymaganiem formalnym i śledzić zmiany.
>> Znowu Cie zmartwie: możesz pokryć tą generyczną funkcję testami w 100% a
>> i tak ktoś rzuci wyjątkiem
> Nie rzuci, bo jest zakaz. Właśnie po to.
Przypuszczam że Ariane miała zakaz przepełniania zmiennych. Nawet może
ktoś pogroził paluszkiem.
>> w przemyśle
>> nawet w aplikacjach do latania stosuje się śmiesze liczby w rodzaju 99%
> A dlaczego nie dało się pokryć tego brakującego 1%?
Bo wymaga to 99% czasu więcej? Szacujący ryzyko ocenia na ile chce mieć
system działający vs system w wiecznej fazie produkcji.
>> System w którym lata milion wyjątków jest do dupy. Ale narzekanie że
>> funkcja generyczna jest do dupy bo może przez nią przelecieć wyjątek
>> jest absurdalne.
> A kod obiektowy, w którym jest milion nieprzetestowanych rozgałęzień jest OK?
Ale co to ma wspólnego z fukcją generyczną?
Kod obiektowy w którym jest milion nieprzetestowancyh rozgałęzień ma
milion miejsc do poprawienia na weryfikacji. Zakasujesz rękawy i
pokrywasz albo masz w zespole człowieka który nie dopuści do takiego
dziadostwa. Ale spokojnie, autoamty do weryfikacji też nie odpuszczą a
na samym końcu ktoś się pod tym podpisuje i to jego złapią za jaja w
razie wypadku.
Następne wpisy z tego wątku
- 10.05.19 21:00 heby
- 13.05.19 08:29 Maciej Sobczak
- 13.05.19 08:40 Maciej Sobczak
- 13.05.19 09:27 AK
- 13.05.19 12:05 g...@g...com
- 14.05.19 00:53 AK
- 14.05.19 08:51 g...@g...com
- 14.05.19 09:55 Maciej Sobczak
- 14.05.19 15:25 Adam M
- 15.05.19 08:09 Maciej Sobczak
- 15.05.19 21:25 AK
- 16.05.19 08:55 g...@g...com
- 04.08.19 18:11 Borneq
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-21 Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 2024-12-21 Ideologia Geniuszy-Mocarzy dostępna na nowej s. WWW energokod.pl
- 2024-12-21 ciekawy układ magnetofonu
- 2024-12-21 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2024-12-21 Warszawa => Java Developer <=
- 2024-12-21 Zalesie Borowe => Medical Equipment Service Engineer <=
- 2024-12-21 Żerniki => Specjalista ds. Employer Brandingu <=
- 2024-12-21 jak tacy debile
- 2024-12-20 Precedensy politycznie motywowanego nie wydawania w UE
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi