Więcej inżynierii, mniej programowania

Nie znamy dziś odpowiedzi na te pytania, choć możemy przewidywać, że informatycy, którzy będą pracowali nad użytkową warstwą systemu, będą musieli w większym stopniu korzystać z pomocy specjalistów od psychologii, socjologii i ergonomii.

Metodyki inżynierii oprogramowania, dziś już uwzględniające użytkownika jako pewną rolę i odzwierciedlające model jego zachowań w systemie (m.in. przypadki użycia w UML), będą musiały być rozwijane w kierunku jeszcze doskonalszego odwzorowania człowieka jako elementu systemu, co de facto oznacza coraz większe dostosowywanie aplikacji do możliwości ludzkiej percepcji. Być może zajmą się tym specjalizowane firmy, działające na wzór biur projektujących karoserie i wnętrza nowych samochodów czy wygląd budynków, łącząc komfort i ergonomię z pewnym artyzmem. Czy look and feel aplikacji będziemy zamawiać u słynnych włoskich projektantów albo utytułowanych skandynawskich designerów?

W krótkim okresie zapewne będziemy obserwować doskonalenie istniejących standardów i rozwiązań, ale w dalszym powinniśmy oczekiwać zasadniczej zmiany. Zapowiadają to liczne publikacje (np. The Humane Interface Jefa Raskina).

Rozproszenie i współbieżność

Jednak zejdźmy z rozważań organizacyjnych i komunikacyjnych do tego, co jest rdzeniem inżynierii oprogramowania, czyli technologii. Nasilającym się trendem w informatyce jest wzrastające rozproszenie funkcjonowania organizacji, a więc i jej zasobów informatycznych. W wymiarze technicznym ma to rozmaite konsekwencje. Pierwsza z nich, to fakt, że klient w zasadzie zawsze jest online. W krótkiej perspektywie coraz większe znaczenie będą odgrywały technologie komunikacji bezprzewodowej. W długiej, konieczny będzie przełom w inżynierii oprogramowania, który umożliwi niezawodne komunikowanie się w rozproszonych aplikacjach i bardziej efektywne przetwarzanie równoległe.

Można przypuszczać, że "wieża Babel" języków programowania nie ulegnie redukcji, ale zamiast starać się stosować języki do nowych zadań, informatycy będą opanowywać specjalizowane narzędzia do konkretnych celów - języki niskiego poziomu do kluczowych algorytmów systemu, narzędzia obiektowe do budowy komponentów, wreszcie języki skryptowe do integrowania ich w całość i udostępniania na zewnątrz. Pytanie "w jakim języku napisany jest wasz system" przestanie mieć sens. Jak mówił Wojtek Kozaczyński, jeden z dyrektorów firmy Rational (CW nr 40/2002), w inżynierii oprogramowania środki wyrazu, jakimi się posługujemy, aby opisać system na danym poziomie abstrakcji, mogą i powinny być różne. Istotne jest, by dla każdego poziomu sposób ten był dobrze dostosowany i aby istniało continuum między nimi, pozwalające zaprojektować spójny i kompleksowy system.

Na pewno emocjonująca będzie rozgrywka między dwoma wielkimi wizjami aplikacji przyszłości: tej zawartej w technologii .Net, opracowanej przez Microsoft, i tej popularyzowanej przez Suna pod nazwą SunONE. Ta pierwsza, oparta na platformie Windows we wszelkich jej odcieniach, wspierana przez znakomite narzędzia programistyczne i potężną machinę marketingową, ma niewątpliwie szansę, by zdominować przyszłość. Ta druga, ciesząca się bardziej zróżnicowanym poparciem i uznanymi zastosowaniami w świecie korporacji, jest kolejnym krokiem do spełnienia wizji zawartej w haśle "dopiero sieć to komputer". Sukces odniesie tylko wtedy, gdy wizja ta stanie się faktem.

Dwa najbliższe lata powinny to wyjaśnić.

W dalszej perspektywie najpilniejszą sprawą wydają się metody przetwarzania równoległego. Już dziś sprzęt komputerowy to raczej nie superszybkie procesory centralne, ale macierze popularnych i tanich jednostek przetwarzania. Za postępem w dziedzinie hardware będzie musiał pójść postęp w software. Inżynieria oprogramowania będzie musiała stworzyć metody pozwalające łatwo dzielić problemy na niezależnie rozwiązywalne zadania, a następnie integrujące wyniki. Jeżeli tego nie zrobi, to już wkrótce wzrastająca teoretyczna moc obliczeniowa architektur komputerów nie będzie powodowała proporcjonalnego wzrostu rzeczywistej wydajności aplikacji. Konieczny jest radykalny przełom jakościowy.


TOP 200