Cobol nadal stanowi szkielet wielu kluczowych systemów finansowych i administracyjnych, z dużym wykorzystaniem w Holandii ze względu na wczesną i skuteczną automatyzację gospodarki.
Cobol był i pozostaje technologią stosowaną w niezawodnych systemach finansowych i administracyjnych, takich jak te używane przez administrację podatkową, banki, ubezpieczycieli i kredytodawców hipotecznych.
„Budowa tych systemów rozpoczęła się w latach sześćdziesiątych XX wieku” – powiedział Jurgena Vinjubadacz w holenderskim krajowym instytucie badawczym matematyki i informatyki, Centrum Wiskunde & Informatica (CWI) oraz profesor zautomatyzowanej analizy oprogramowania na Uniwersytecie Technicznym w Eindhoven.
„Systemy nieuchronnie rosną w wyniku dodawania nowych funkcjonalności i dostosowywania się do zmieniających się okoliczności. Niestety utrzymanie tych systemów jako małych i łatwych w zarządzaniu często nie jest priorytetem, przez co z biegiem lat stają się niezrozumiałe”.
Odchodzenie na emeryturę pokolenia ekspertów posiadających dogłębną wiedzę na temat systemów Cobol prowadzi do poważnych niedoborów wiedzy.
„Mają wiedzę nie tylko nt Język programowania Cobolale także o konkretnych systemach, nad którymi pracowali i budowali przez lata” – powiedział Tijsa van der Stormakolega Vinju w CWI i profesor inżynierii oprogramowania na Uniwersytecie w Groningen.
Vinju dodał: „Ci eksperci są często jedynymi, którzy znają systemy na tyle dobrze, aby je utrzymywać i ulepszać”. Brak doświadczonych programistów Cobola oznacza, że mniej osób może dokonać niezbędnych regulacji i konserwacji, co „stwarza ryzyko dla organizacji zależnych od tych systemów”.
Dobrym przykładem jest Bank Ubezpieczeń Społecznych (SVB). Kiedy firma SVB stanęła w obliczu poważnych problemów ze swoimi przestarzałymi systemami Cobol, zdała sobie sprawę, że wiedza kluczowa do ich utrzymania i ulepszania w dużej mierze została wycofana.
Aby rozwiązać ten problem, sprowadzono z powrotem grupę emerytowanych ekspertów Cobol. Ich głębokie zrozumienie języka programowania i specyficznych procesów biznesowych pozwoliło im szybko zidentyfikować problemy i wdrożyć rozwiązania. Ich powrót zapewnił utrzymanie i optymalizację istniejących systemów, co doprowadziło do znacznych oszczędności i poprawy niezawodności usług. Zdaniem badaczy sam Cobol nie jest jednak problemem.
„Problem polega głównie na tym, że wszystkie te stare systemy Cobol ogromnie się rozwinęły w ciągu ostatnich dziesięcioleci” – powiedział Vinju. „Wynika to z tego, że ludzie chcą nowych rzeczy, a kontekst stale się zmienia, na przykład poprzez zmieniające się przepisy. Inżynierowie oprogramowania rozbudowują system, aby sprostać tym zmianom, co prowadzi do wykładniczego wzrostu kodu źródłowego. Z biegiem czasu system rozrasta się nie do zrozumienia, zwłaszcza dla nowych osób.
„To zmniejsza elastyczność, skuteczność i niezawodność konserwacji, co utrudnia dostosowanie systemu do nowych wymagań. Problemem jest przede wszystkim malejąca efektywność wiedzy w coraz większym systemie” – dodał Vinju.
Zarządzanie złożonością
Badacze CWI skupiają się na kontrolowaniu i zapobieganiu tej złożoności. „Nasze badania koncentrują się na opracowywaniu technik analitycznych, które mogą pomóc w zarządzaniu i utrzymaniu starych i złożonych systemów” – powiedział Vinju.
W szczególności opracowywanie lepszych języków programowania języki specyficzne dla domeny (DSL) jest niezbędna.
„Dzięki DSL niektóre domeny, takie jak systemy finansowe, mogą stać się prostsze i łatwiejsze do analizy, ponieważ mają mniej ogólne zastosowanie” – powiedział Van der Storm. „Dzięki temu powstają mniejsze, bardziej zrozumiałe programy, ułatwiające analizę i konserwację”.
Doskonałym przykładem sukcesu DSL jest RISLA, język specyficzny dla domeny używany w sektorze finansowym. Język został opracowany, aby sprawnie opisywać i wdrażać produkty finansowe. Język ten umożliwia ekspertom finansowym określenie warunków umowy i szczegółów produktu w zrozumiałym tekście bez konieczności posiadania głębokiej wiedzy programistycznej. Następnie generator kodu automatycznie generuje kod Cobol na podstawie tych specyfikacji.
Przechwytując konkretną wiedzę dziedzinową w zrozumiałej i zwartej formie, DSL umożliwia określenie złożonej logiki biznesowej i reguł w prostych i czytelnych słowach. Uniemożliwia to programistom ręczne pisanie za każdym razem obszernego kodu Cobol, zmniejszając ryzyko błędów i poprawiając spójność.
Co więcej, DSL może użyć generatora kodu, aby automatycznie przekonwertować te specyfikacje na dobrze ustrukturyzowany kod Cobol. Dzięki temu zmiany i nowe funkcje można wdrożyć szybko i bez błędów, bez konieczności dalszego rozszerzania podstawowej bazy kodu.
„Dzięki temu systemy są łatwiejsze w zarządzaniu i konserwacji, co poprawia ich długoterminową stabilność. Wygenerowany kod jest jednolity i spełnia rygorystyczne standardy, zapewniając integralność systemu oraz zmniejszając ryzyko błędów i awarii systemu” – powiedział Vinju, który jest także współwłaścicielem spółki spin-off Swat. inżynieria skupiająca się na DSL i inżynierii odwrotnej.
Innym kierunkiem rozwiązań badanym przez CWI w celu zmniejszenia złożoności obecnych holenderskich systemów Cobol jest inżynieria odwrotna. „Ten proces umożliwia odzyskanie głębokiej wiedzy o systemie, nawet jeśli pierwotni programiści nie są już dostępni” – powiedział Vinju.
Uzyskane spostrzeżenia mogą pomóc w uproszczeniu struktury i logiki systemu, zidentyfikowaniu niepotrzebnych komponentów i usunięciu nieefektywności. Narzędzia inżynierii wstecznej mogą również ujawniać wzorce i relacje w kodzie, dzięki czemu wąskie gardła i luki w zabezpieczeniach są bardziej widoczne. Takie podejście umożliwia organizacjom modernizację i optymalizację systemów przy jednoczesnym stopniowym utrzymywaniu integralności operacyjnej.
Inwestycja w przyszłość Cobola
Przyszłość systemów Cobol w Holandii w dużej mierze zależy od chęci organizacji rządowych i instytucji finansowych do inwestowania w techniki takie jak DSL, inżynieria wsteczna i szkolenie nowych programistów Cobol.
„Migracja do nowoczesnej technologii wymaga dobrego zrozumienia obecnego systemu” – powiedział Vinju. „Teraz często tego brakuje, co utrudnia skuteczną migrację.
„Co więcej, migracje zlecane na zewnątrz często skutkują powstaniem nowych systemów, które są równie złożone i niezrozumiałe jak stare. Prawdziwym problemem jest brak wiedzy o systemie. Nie zapewniliśmy ekspertom Cobol wystarczających możliwości przekazania swojej wiedzy i umiejętności przed przejściem na emeryturę”.
Szkoły i uniwersytety w Holandii zaprzestały szkolenia programistów języka Cobol w latach 80. XX wieku, sądząc, że język ten wymrze. Stwarza to obecnie lukę w liczbie dostępnych programistów. W Holandii istnieją organizacje, które zajmują się tym problemem, szkoląc osoby zmieniające karierę.
Chociaż wiele mówi się o wycofywaniu Cobolu w Holandii, zdaniem badaczy CWI nie zawsze jest to najlepsze rozwiązanie.
„Cobol doskonale nadaje się do transakcji finansowych i oferuje korzyści, z którymi współczesne języki nie zawsze mogą się równać. Ważne jest, aby inwestować w utrzymanie i modernizację istniejących systemów Cobol, a nie całkowicie je wymieniać” – powiedział Vinju.
Problem polega jednak na tym, że budżety często nie są przeznaczane na to, co jest naprawdę potrzebne. „Plany krótkoterminowe nie rozwiązują problemów konserwacyjnych na dużą skalę. Wymaga to długoterminowej wizji i planów na 10–15 lat” – podsumował Vinju.