Pędzi parowóz historii

Szybciej, więcej, dalej

Trendem, który wyraźnie obserwujemy od kilkunastu lat, jest wzrost przepustowości dostępnych systemów i łączy komunikacyjnych. Podobnie rzecz się ma z pojemnością pamięci. Prawo, głoszące podwojenie osiągów urządzeń elektronicznych co półtora roku, bywa podważane: to podwojenie niekiedy ma miejsce już co rok!

Jednak głód aplikacji, korzystających z wciąż rosnących zasobów, jest nienasycony, a my, ich użytkownicy, ze zdumiewającą łatwością uczymy się traktować jako coś oczywistego dostępne dla nas funkcje, wymagające dyskretnego, skoordynowanego działania setek i tysięcy wyposażonych w te zasoby komputerów. Warto sobie przypomnieć,że dziesięć lat temu telefon komórkowy był atrybutem zamożności...

Czytając starą literaturę science fiction, znajdujemy opisy realizacji wielu ludzkich marzeń. Robot sprzątający mieszkanie, teleportacja, elektroniczne gazety, książki i koncerty na życzenie. Nie należy sądzić, by te potrzeby zmieniły się w przewidywalnej przyszłości, a ich realizacja wymaga przede wszystkim zasobów z klasy "szybciej, więcej, dalej".

Tanie, lekkie, przenośne urządzenie GPS, do którego drogą radiową w każdej chwili można wczytać dowolną mapę, przewodnik? Proszę bardzo, wykonalne od jutra, tylko że nie będzie chwilowo ani tanie, ani zbyt lekkie, ani nie obędzie się bez dopływu prądu dłużej niż przez kilka godzin.

Elektryczne głupiutko do robienia porządków (terminologia Lema)? Oczywiście, można zbudować, tylko przez kilka najbliższych lat będzie ciężkie, dość zawodne i wymagające kosztownych zasobów pamięci, kilku procesorów do przetwarzania obrazów z kamer, procesora uniemożliwiającego wkładanie skarpetek do lodówki (znów pomysł zapożyczony od Lema) itd. Jednym słowem, bardziej ciekawostka na japońską wystawę robotów niż sprzęt, który na imieniny dostanie od współmałżonka przepracowany informatyk. Ale potrzeba nie znika, czekamy na tańszy, lżejszy, efektywniejszy sprzęt oraz oprogramowanie, które inteligentnie, elastycznie zrealizuje starą ludzką potrzebę prasowania koszul, zbierania brudnych talerzy ze stołu oraz strzyżenia trawników i wyrywania chwastów.

Jak dziś bardzo istotnym elementem wytwarzania aplikacji internetowych są testy wydajnościowe i dostrajanie systemu, tak już niedługo testy nowej generacji robotów sprzątających będą wymagały wspomagającego oprogramowania do obciążania brudnymi talerzami, generowania kotów w kątach oraz wkładania mleczy w grządki pietruszki. Na pewno Borland, Compuware, Mercury oraz Rational już coś w tajemnicy szykują na ten nowy segment rynku!

Jakość szyta na miarę

Co zmieniło się, co nadejdzie dopiero w inżynierii oprogramowania? Języki 4GL, lansowane dawno temu (przed narodzinami CW) jako niemal zbawienie, prawie że odeszły do lamusa historii. Paradygmat obiektowy wprawdzie dobrze się trzyma, ale podnoszona jakieś dziesięć lat temu do rangi jedynej słusznej drogi jedność analizy (modelowania), projektowania i konstruowania (implementacji), możliwa dzięki posługiwaniu się obiektowymi metodami na każdym etapie, nie jest już równie popularna. Miejsce na piedestale zajęły chwilowo przypadki użycia i UML. So many men/women, so little time - którą metodę pokochać, z którą się związać na zawsze?

Nie zajmuję się wprawdzie doradztwem małżeńskim, ale w inżynierii oprogramowania wydaje mi się, że rozwiązaniem będzie META. Nie "meta", gdzie zdesperowani zmiennością informatycznej mody zaopatrzymy się w kojącą troski gorzałkę, lecz "meta" w znaczeniu czegoś nadrzędnego, jak w słowie metajęzyk na przykład. Technologie sprzętowe umiemy dość sprawnie dostosowywać do potrzeb: moc obliczeniowa procesora, szerokość magistrali, pojemność pamięci kształtuje się inaczej dla pralki automatycznej, telefonu komórkowego, elektronicznego notatnika, komputera osobistego, serwera, sieci telefonicznej. Względnie dobrze skalowalne i konfigurowalne są też systemy operacyjne, natomiast już przy wyborze architektury i dalej języka programowania kierujemy się bardziej modą i przyzwyczajeniem, może także dostępnością środowiska, niż tym, na ile dany język pasuje do problemu.

Jeśli chodzi o różne metody i metodyki inżynierii oprogramowania, też nie dysponujemy na razie przekonywającymi danymi, pozwalającymi na przykład określić, ile w danym projekcie opłaca się zainwestować w zapewnienie jakości, jak optymalnie zorganizować proces wytwarzania, czy mierzyć w CMM poziom 3, czy raczej poziom 2? Czy wybrać Javę, czy programować w asemblerze?

"Meta", którą przewiduję, będzie rozwojem metodyki (i metodologii) pozwalającym na optymalizację procesu wytwarzania systemów informatycznych zależnie od parametrów systemu/produktu. Metodyka META powinna - mówiąc w uproszczeniu - wypisać na wyjściu, jak zorganizować projekt, jaką wybrać architekturę i technikę dla systemu, którego wymagania funkcjonalne wprowadziliśmy jako dane wejściowe do metodyki META.

Oczekujmy, że za kilkanaście lat wysiłki czynione w tym kierunku zaczną przynosić dostrzegalne wyniki.

Samoobsługa

Odkąd pierwszy ładnie obłupany pięściak krzemienny zmienił właściciela w drodze wymiany za - powiedzmy - kosz cebuli, odtąd sprzedaż produktów oznaczała przeniesienie fizycznej odpowiedzialności za produkt z producenta na właściciela. Choć później kodeks Hammurabiego dość jednoznacznie określał odpowiedzialność budowniczego domu, który zawalił się na głowę właściciela, a współczesne prawa dotyczące odpowiedzialności producenta, gwarancji i reklamacji realizują tą samą zasadę nieco delikatniej, to marna z tego pociecha dla właściciela domu, który się zawalił, czy lodówki, która przestaje działać w upalne, lipcowe, sobotnie popołudnie. Może wprawdzie dochodzić swoich praw, ale... właśnie "dochodzić". Troska o produkt, jak w przypadku pięściaka, jest po stronie właściciela.

O dziwo, w branży komputerowej sytuacja nie jest ani trochę lepsza. Gorzej. IKEA wprawdzie sprzedaje nam meble, które musimy sobie sami poskręcać, ale kto nie chce, nie musi w niej kupować, a zresztą złożenie najbardziej nawet skomplikowanej szafy jest bagatelą w porównaniu z zawiłościami pielęgnacji i konserwacji przeciętnego domowego komputera czy laptopa.

Rewolucja pierwszej połowy lat 80. ubiegłego stulecia, kiedy komputery nagle zmalały od rozmiarów nosorożca czy krowy do rozmiarów średniego psa i rozbiegły się po domach (prognoza IDC Poland przewiduje w tym roku sprzedaż 1 500 000 komputerów osobistych w Polsce), uczyniła z milionów użytkowników... administratorów swoich systemów. Przykładowo babcia spod Knyszyna, której wnuk kupił na 70. urodziny komputer, musi teraz zacząć dbać o kopie zapasowe, żeby w razie awarii dysku nie stracić setek przepisów na placek z wiśniami lub faszerowanego indyka. Co więcej, podłączywszy się do Internetu, babcia nagle otrzymuje liczne propozycje zainstalowania kolejnych łat lub wersji czegoś, o czego istnieniu nawet wolałaby nie wiedzieć. Bezczelność pod tym względem producentów oprogramowania, którą pokornie znosimy, można sobie wyobrazić przez analogię: gdyby tak producent naszego auta przysłał nam kurierem nowy silnik do samodzielnego montażu, tłumacząc, że stary był niestety wadliwy?

Kłopoty ma nie tylko babcia spod Knyszyna. Kiedyś autorowi tych słów ukradziono laptop. Po zakupieniu nowego i względnie bezbolesnym wgraniu kopii zapasowej, ledwo dwutygodniowej (#!@?...&*%$#), bite dwa dni zajęło wgrywanie, instalowanie i konfigurowanie wszystkiego tak, żeby z grubsza odtworzyć stan sprzed przestępstwa.

Rozwiązaniem na takie troski jest kiełkująca obecnie branża zwana ASP (Application Service Provider). Aplikacja, z której korzystamy, znajduje się cały czas na serwerze producenta. Wszelkie zmiany aplikacji przebiegają niezauważenie i nie są troską właściciela. Akt kupna polega nie na fizycznym przekazaniu pięściaka... to jest kodu programu, lecz na udostępnieniu hasła umożliwiającego posługiwanie się aplikacją. Dane aplikacji również znajdują się na serwerze dostawcy, gdzie są profesjonalnie (miejmy nadzieję) chronione przed niepowołanym dostępem oraz utratą. Obecny laptop, którym musimy mozolnie się opiekować, staje się stopniowo chudym urządzeniem dostępowym, którego utrata nie przysparza właścicielowi więcej troski, niż zgubienie aparatu radiowego.

Rzecz nie tylko laptopów dotyczy: zamiast prywatnych zbiorów muzyki lub filmów, pracowicie ściąganych, każdy odtwarzacz MP3 i DVD mógłby być wyposażony w szerokopasmowe łącze, za pomocą którego ma się dostęp do zasobów melodii i filmów w całej sieci.

Warunkiem koniecznym, choć niedostatecznym, zrealizowania tej (spędzającej Billowi sen z oczu) wizji, jest powstanie powszechnie dostępnej, niedrogiej, bardzo szerokopasmowej komunikacji. Można się spodziewać, że rozwój będzie szedł także w tym kierunku.

Bogdan Bereza-Jarociński jest niezależnym konsultantem (http://www.bbj.com.pl ).

Następne wersety głosiły, że "potrzebny jest maszynista, którym jest ON: towarzysz, wódz, komunista - STALIN - słowo jak dzwon!"

Bogdan Wiszniewski, Bogdan Bereza-Jarociński, "Praktyka i teoria testowania programów", pojawi się w wydawnictwie MIKOM


TOP 200