-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED!not-for-mail
From: Andrzej Jarzabek <a...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: poprawność algorytmu
Date: Sat, 28 Mar 2015 13:08:48 +0100
Organization: news.chmurka.net
Lines: 165
Message-ID: <mf65j9$ut1$1@srv.chmurka.net>
References: <4...@g...com>
<d...@g...com>
<meti4e$osd$1@srv.chmurka.net>
<f...@g...com>
<mevfpd$gpa$1@srv.chmurka.net>
<e...@g...com>
<mf1tnf$d48$1@srv.chmurka.net>
<5...@g...com>
<mf4eao$a9t$1@srv.chmurka.net>
<2...@g...com>
NNTP-Posting-Host: 78.31.215.218
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: srv.chmurka.net 1427544489 31649 78.31.215.218 (28 Mar 2015 12:08:09 GMT)
X-Complaints-To: abuse-news.(at).chmurka.net
NNTP-Posting-Date: Sat, 28 Mar 2015 12:08:09 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101
Thunderbird/31.5.0
In-Reply-To: <2...@g...com>
X-Authenticated-User: ajarzabek
Xref: news-archive.icm.edu.pl pl.comp.programming:207692
[ ukryj nagłówki ]On 28/03/2015 10:10, Maciej Sobczak wrote:
> W dniu piątek, 27 marca 2015 21:25:34 UTC+1 użytkownik Andrzej
> Jarzabek napisał:
>
>> Ale może właśnie potrafią wyspecyfikować, ale niekoniecznie w
>> języku formalnym.
>
> To skąd wiedzą, że dobrze wyspecyfikowały? Mają przeczucie?
Stąd, że się na tym znają.
>> Albo nawet, co jest też częste, nie potrafią co prawda
>> wystarczająco precyzyjnie wyspecyfikować, ale programista potrafi
>> dojść do tego poprzez zadawanie pytań, zrozumienie celu jaki ma
>> realizować program i posługiwanie się przykładami.
>
> I napisać funkcję sort?
W praktyce funkcję sort pisze się bardzo rzadko.
>> No więc właśnie algorytm sortowania to taki wdzięczny temat dla
>> metdo formalnych
>
> Tak. Metody formalne rozwija się po to, żeby wdzięcznych tematów było
> coraz więcej.
Być może, nie znaczy to jednak, że na obecnym etapie rozwoju jest sens
się nad tym zastanawiać w ogólnym przypadku.
>> Niestety w praktyce zwykle miewa się do czynienia z bardziej
>> skomplikowanymi przypadkami.
>
> Zgadza się. I co, wtedy się łatwo testuje?
Wtedy da się w praktyce testować - przez co rozumiem osiągnięcie
akceptowalnej niezawodności przy akceptowalnych kosztach.
>>> Zgadzam się, że to jest problem. Metody formalne są ciałem obcym
>>> w branży, bo nie pasują do dotychczas przyjętych wzorów pracy.
>>
>> Bo się nie nadają do realizacji tych zaań, które zazwyczaj się
>> realizuje.
>
> Ale testy też się nie nadają, tylko łatwiej to ukryć pod pozorem, że
> się je robi.
Ale jak najbardziej się nadają, bo testowane programy działają
wystarczająco często i per saldo zarabiają.
>> Konsensus jest taki, że metody formalne albo w ogóle nie nadają się
>> do zastosowania większości problemów, albo są nieopłacalne.
>
> Czyj konsensus? Bo na razie ustaliliśmy, że punkty widzenia są
> różne.
Konsensus, który obserwuję jako osoba pracująca od iluś tam lat przy
tworzeniu komercyjnego oprogramowania.
>> Jeśli konsensus się myli, to byłoby bardzo duże zainteresowanie
>> tym, jak by to zrobić w praktyce tak, żeby się opłacało.
>
> No więc ja rozumiem, że zainteresowanie jest.
Ja rozumiem, że jest głównie w tych nielicznych niszach, gdzie istnieje
uzasadnione podejrzenie, że się da.
>> Tyle że na razie udaje się to jedynie w specyficznych niszach.
>
> Bo tylko w specyficznych niszach się próbuje to robić. W pozostałych
> niszach może nawet nie być wystarczającej świadomości, że jest to
> możliwe.
Świadomość istnienia czegoś takiego jak metody formalne raczej jest, to,
czy jest dodatkowo opłacalne to raczej bym powiedział, że problem leży w
braku wiedzy czy rzeczywiście jest, a nie w tym, że jest, ale ludzie z
branży o tym nie wiedzą.
Noo chyba że masz matematyczny dowód na to, że metody formalne są opłacalne?
>> Jeśli uważasz, że dałoby się stosować te metody w ogólnym
>> przypadku, to np. ja byłbym bardzo zainteresowany - jak?
>
> Nie wiem. Nie wiem nawet, czy to jest dobre pytanie. Bo zamiast
> szukać jednej metody do zastosowania w ogólnym przypadku, może trzeba
> szukać szczególnej metody do każdego przypadku osobno. Ja wiem, że
> korporacje tego nie lubią, bo im to utrudnia zarządzanie zasobami
> metodą "zatrudnijmy 20% programistów więcej".
Może nie lubią dlatego, że przypadków jest dużo i wymyślanie nowej
metody byłoby zarówno bardzo kosztowne jak i bardzo ryzykowne - bo
problem trzeba rozwiązać, a nową metodę po pierwsze nie wiadomo, czy się
w ogóle uda znaleźć, a po drugie nie wiadomo ile to zajmie.
>> Ale właściwie co to ma do rzeczy? Firma nie ponosi straty jeśli
>> pracownik nie idzie do pierdla? Jak ktoś dostaje albo nie dostaje
>> premii to znaczy że są albo nie ma testów?
>
> Sam napisałeś, że to wszystko wynika z zarządzania ryzykiem. Powyżej
> masz input do tego zarządzania. Outputem jest wybór metod pracy.
Kompletnie nie widzę jak się to ma do tego, co pisałeś wcześniej.
Instytucje finansowe zajmują się zarabianiem pieniędzy, i generalnie
wszystkim od programisty aplikacji do prezesa raczej zależy, żeby
aplikacje zarabiały pieniądze, a nie je traciły. A straty z błędów są
jak najbardziej realne, w zależności od ontologicznego podejścia do
pieniędzy.
>> Da się, bo sukces testowania to nie jest 100% wyeliminowanie
>> szansy błędu, tylko redukcja ryzyka strat w takim stopniu, żeby
>> opłacało się to firmie.
>
> Zgadza się. Coś jak z pytaniem czy dziecko nauczyło się tabliczki
> mnożenia a ono odpowiada, że nauczyło się tyle, żeby w opłacalnym
> stopniu zredukować ryzyko wpadki. No to nauczyło się czy się nie
> nauczyło?
Praktycznie nauczyło się w wystarczającym stopniu. A historii Powstania
Styczniowiego dziecko nauczyło się wtedy, kiedy potrafi odpowiedzieć na
dowolne pytanie dotyczące jakiegokolwiek znanego światowi naukowemu
historycznego żródła mówiącego cokolwiek o Powstaniu Styczniowym, czy
jeśli ma odpowiednio dużą szansę, że odpowie na pytanie na pytanie z
tematu zadane przez nauczyciela?
>> Jak konkretnie by to wyglądało w przypadku takiego programu, jaki
>> opisałem?
>
> Złe pytanie. Tego programu jeszcze nie ma, więc nie ma takiego
> przypadku. :-) Przypadkiem może być problem do rozwiązania, np.
> "system tradingowy". Mam opisać jak się to robi od początku? No więc
> bierze się białą tablicę i pisak, a potem... ;-)
Program jest, coś robi, został napisany w warunkach jakiejś potrzeby i
był modyfikowane w warunkach zmieniających się potrzeb. Moje pytanie
jaką byś zaproponował metodę działania zamiast tej, która faktycznie
została zastosowana i doprowacziła do powstania programu takiego, jaki jest.
> Ja wiem, że to jest niemodne podejście. Teraz się od razu nap...la
> kod, zanim jeszcze będzie wiadomo, co program ma robić.
Widziałem wiele sytuacji, gdzie zaczęto od wzięcia białej tablicy i
pisaka, ale nigdy nie skończyło się to stworzeniem programu z dowodem
formalnym.
>> Ale niekompletne testy są też użyteczne, w sensie takim, że
>> realnie redukują ryzyko
>
> Jak realnie? Możesz to wyrazić w liczbach? Jakiś wykres, abo coś?
Nie.
> Bo
> jeśli mam za to zapłacić, to chcę znać ROI. Skoro te testy mają mieć
> efektywność probabilistyczną, to być może bardziej opłaca się
> wykupienie polisy ubezpieczeniowej? To wcale nie jest śmieszne
> pytanie.
Myślę, że nikt ci nie sprzeda takiej polisy.
>> w przeciwieństwie do niekompletnego dowodu, który jest czystym
>> marnotrawstwem.
>
> Więc róbmy dowód kompletny.
To jest ryzyko, bo może się okazać, że zanim skończysz dowodzić, skończą
się pieniądze albo program przestanie być potrzebny w takiej postaci.
Następne wpisy z tego wątku
- 28.03.15 18:22 Maciej Sobczak
- 28.03.15 19:38 Roman W
- 28.03.15 19:43 Roman W
- 28.03.15 19:50 A.L.
- 28.03.15 19:51 A.L.
- 28.03.15 21:16 Andrzej Jarzabek
- 29.03.15 00:13 Maciej Sobczak
- 29.03.15 15:21 Andrzej Jarzabek
- 29.03.15 23:18 Maciej Sobczak
- 30.03.15 00:49 Andrzej Jarzabek
- 30.03.15 00:59 Andrzej Jarzabek
- 30.03.15 01:19 Roman W
- 30.03.15 09:38 slawek
- 30.03.15 09:45 slawek
- 30.03.15 09:49 slawek
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 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
Najnowsze wątki
- 2025-02-05 Re: UK: Michał K. dalej czeka na rozprawę ekstradycyjną w areszcie [bo nie (jeszcze?) zebrał kaucji]
- 2025-02-04 ranking wyciszenia, głośność, hałas przy 130 km/h, na postoju, przy przyspieszaniu
- 2025-02-05 Warszawa => IT Recruiter <=
- 2025-02-05 Ostrów Wielkopolski => Area Sales Manager OZE <=
- 2025-02-05 Rzeszów => Spedytor Międzynarodowy <=
- 2025-02-05 Warszawa => IT Business Analyst <=
- 2025-02-05 Warszawa => Specjalista DevOps <=
- 2025-02-05 Łódź => NodeJS Developer <=
- 2025-02-05 Warszawa => QA Engineer (Quality Assurance) <=
- 2025-02-05 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-02-05 Warszawa => QA Engineer <=
- 2025-02-05 Warszawa => Programista Full Stack .Net <=
- 2025-02-05 Re: UK: Michał K. dalej czeka na rozprawę ekstradycyjną w areszcie [bo nie (jeszcze?) zebrał kaucji]
- 2025-02-04 podpisywanie umów z datą wsteczną
- 2025-02-04 Radio internetowe do starego Androida