Szukasz kursu specjalistycznego z BHP, SEP lub kursu na wózki widłowe? Kurs edukacyjny!

Rozszerzona teoria informacji

Z moich doświadczeń wynika, że złożoność spotykana w pracach systemowych jest na ogół przejawem błędnego funkcjonowania firmy. Próby modelowania tej rzeczywistości za pomocy równie złożonych programów to w istocie utrzymanie bałaganu, a nie rozwiązywanie problemów. Steve Łukasik z Northrop dowodzi, że nawet organizacyjna złożoność nie musi być arbitralna i poddaje się zasadom porządkowania:

Będąc fizykiem z wykształcenia, wiem, że rzeczy „złożone” można opisać w kategoriach prostszych koncepcji. Być może ma pan rację: nie twierdzę, że wszystkie rzeczy złożone poddają się zasadom porządkowania … ale rozumując w ten sposób, nie może pan twierdzić, że się im nie poddają. Złożoność dnia wczorajszego to porządek w dniu jutrzejszym. Złożoność nieporządku molekularnego ustąpiła miejsca kinetycznej teorii gazów i trzem prawom termodynamiki. Być może w oprogramowaniu nigdy nie pojawią się takie zasady porządkowania, jednakże to na panu spoczywa ciężar udowodnienia, dlaczego to nie nastąpi. Nie jestem ani głupi, ani kłótliwy. Wierzę, że pewnego dnia „złożoność” oprogramowania zostaitie zrozumiana w kategoriach pewnych pojęć wyższego rzędu („niezmienniczych” w języku fizyka).

Nie przeprowadziłem dogłębnej analizy problemu, o którą Łukasik słusznie się upomina. Potrzebna jest – jako dyscyplina – rozszerzona teoria informacji, która umożliwiałaby stopniowanie informacyjnej zawartości struktur statycznych, podobnie jak to zrobiono w teorii Shannona w odniesieniu do przekazywanych strumieni informacji. To całkowicie wykracza poza moje możliwości. Łukasikowi po prostu odpowiadam, że złożoność systemu jest funkcją niezliczonych szczegółów, z których każdy musi być dokładnie wyspecyfikowany – czy to za pomocą jakiejś reguły ogólnej, czy szczegół po szczególe, a nie jedy- nie statystycznie. Wydaje się bardzo mało prawdopodobne, żeby nieskoordynowane prace wielu umysłów były dostatecznie spójne i żeby dało się je dokładnie opisać za pomocą ogólnych reguł. jednakże złożoność konstrukcji oprogramowania w dużym stopniu wynika nie z konieczności doprowadzenia do jego zgodności ze światem zewnętrznym, ale raczej z samej implementacji – struktur danych, algorytmów, metod łączenia części. Hodowanie oprogramowania w porcjach wyższego poziomu, budowanych przez kogoś innego lub ponownie użytych własnych, stworzonych wcześniej, umożliwia uniknięcie całych warstw złożoności. W eseju „Brakująca srebrna kula” zalecałem zdecydowane zaatakowanie problemu złożoności, przy czym nie ukrywałem optymizmu co do możliwego postępu w tej dziedzinie. Jestem zwolennikiem wprowadzania koniecznej złożoności do systemu oprogramowania:

– hierarchicznie – przez warstwy modułów lub obiektów:

– przyrostowo, żeby system stale działał.

Analiza Harela

David Harel w artykule z 1992 roku „Biting the Silver Bullet” („Zagryzanie srebrnej kuli”)9 przedstawił najwnikliwszą z opublikowanych jak dotychczas analiz mojego tekstu. Pesymizm, optymizm, realizm. Harel uważa, że zarówno mój artykuł, jak i Parnasa „Software Aspects of Strategie Defense Systems („Aspekty oprogramowania strategicznych systemów obrony”)10 są ponure w wymowie. Pragnie więc ukazać jaśniejszą stronę całego problemu, dając swojemu artykułowi podtytuł „Toward a Brighter Future for System Development” („Ku jaśniejszej przyszłości rozwoju systemów”). Cox, podobnie jak Harel, uważa przedstawione przeze mnie poglądy za pesymistyczne. Powiada: „Gdy jednak spojrzy się na te same fakty z nowej perspektywy, wniosek jest bardziej optymistyczny”. Obaj błędnie odczytują ton mojej wypowiedzi.

Przede wszystkim, moja żona, koledzy i redaktorzy uważają, że znacznie częściej grzeszę optymizmem niż pesymizmem. Jestem w końcu doświadczonym programistą, a optymizm jest w naszym rzemiośle chorobą zawodową.

W artykule mówię wyraźnie: „Kiedy … spojrzymy na perspektywę najbliższych 10 lat, nie dostrzeżemy żadnej srebrnej kuli … Sceptycyzm nie jest jednak jednoznaczny z pesymizmem … Nie ma żadnego królewskiego gościńca prowadzącego do celu, ale jakaś droga istnieje”. Przewidywałem, że jeśli prace nad innowacjami, jakie rozpoczęto w 1986 roku, zostaną ukończone, a te innowacje w pełni wykorzystane, to rzeczywiście dojdzie do zwiększenia efektywności oprogramowania o rząd wielkości. W miarę upływu dekady 1986-1996 prognoza ta wydaje się raczej zbyt optymistyczna niż zbyt przygnębiająca.

Jeżeli nawet esej „Brakująca srebrna kula” został powszechnie uznany za pesymistyczny, to co w tym złego? Czy twierdzenie Einsteina, że nic nie może się poruszać z prędkością większą niż prędkość światła, jest „ponure” albo „przygnębiające”? A co z wnioskiem Gó- dela, że niektórych rzeczy nie da się obliczyć? W swoim artykule podjąłem próbę wykazania, iż z samej istoty procesu budowy oprogramowania wynika, że pojawienie się srebrnych kul jest mało prawdopodobne. W znakomitej odpowiedzi na mój artykuł, napisanej na konferencję IFIP, Turski wymownie stwierdza:

Podobne Artykuły

Zostaw odpowiedź

Twoj adres e-mail nie bedzie opublikowany.