Oprogramowanie, które myśli samodzielnie
Systemy samoadaptacyjne to programy komputerowe, które potrafią reagować na bieżącą sytuację i rekonfigurować się, minimalizując w ten sposób potrzebę ingerencji człowieka, dzięki czemu produkt może potencjalnie dożywotnio spełniać wymagania użytkownika. Jednakże, przy aktualnie stosowanych metodach programistycznych, systemy nie przewidują zdarzeń, a tylko reagują na nie. Efektem braku zdolności do przewidywania zmian mogą być awarie oprogramowania. Projekt RUNMORE (Run-time model projections for software failure prediction) przyczynił się do rozwoju dynamicznie adaptacyjnych systemów, które potrafią automatycznie przewidywać zdarzenia i unikać potencjalnych awarii. Badacze wykorzystali nową koncepcję posługującą się modelami czasu uruchamiania, nadającymi systemom oprogramowania zaawansowane możliwości rozumowania na temat potencjalnych zmian oraz zdolność zarządzania nimi. Wywodzące się z opartych na modelach technologii programistycznych modele czasu uruchamiania są wbudowane w system i inicjują reguły adaptacyjne podczas jego wykonywania. Celem prac było zbadanie, w jaki sposób można wykorzystać te modele do monitorowania i analizy zachowania złożonych systemów oprogramowania, ich środowiska wdrażania i ich użytkowników. Zespół przygotował także rozwiązanie eliminujące konflikty między szeregiem różnych wymagań podczas procesu adaptacji. Typowym przykładem systemów adaptacyjnych są aplikacje sieci Web, które usprawniają przeglądanie internetu dzięki adaptacji treści i zachowań do preferencji użytkownika. W oparciu o ten przykład uczeni wykazali, w jaki sposób można adaptować reguły nadawania serwera zgodnie z potrzebami klientów. W środowiskach, w których przetwarzane są duże ilości zdarzeń, technika przetwarzania złożonych zdarzeń (CEP) pozwala identyfikować znaczące dane i reagować na nie tak szybko, jak to możliwe. Uczeni znaleźli nową strukturę, która potrafi uczyć się reguł CEP poprzez eksplorację wzorców w historycznych danych dotyczących zdarzeń. Ustalenia te mogą pozwolić na opracowanie nowej klasy systemów oprogramowania, które będą uczyć się złożonych reguł, pomagających im w samodzielnej rekonfiguracji i adaptacji do zmian. Omawiane prace przyczyniają się do powstania oprogramowania, które będzie usprawniać swoje działanie wraz z upływem czasu, dzięki gromadzeniu informacji o zmianach zachodzących w jego środowisku oraz o zmieniających się wymaganiach użytkowników. Te samoadaptacyjne systemy nie tylko automatycznie dostosowują się do zmian, ale także przewidują je.
Słowa kluczowe
Oprogramowanie, systemy samoadaptacyjne, model uruchamiania, przewidywanie błędów, przetwarzanie złożonych zdarzeń