Wyszukiwanie korporacyjne nieudokumentowanych starszych baz kodu

Wyszukiwanie korporacyjne nieudokumentowanych starszych baz kodu

Deweloperka dołączyła trzy miesiące temu. Jej pierwsze zadanie: znaleźć każdy program, który odczytuje z CUST-BALANCE Pole w rekordzie głównym klienta. Jej menedżer powiedział jej, że odpowiedź to prawdopodobnie około czterdziestu programów. Zaczęła od bazy CMDB, niekompletnej, ostatnio aktualizowanej w 2021 roku. Sprawdziła inwentaryzację aplikacji, dokumentuje systemy, ale nie programy w nich zawarte. Zapytała starszego programistę, który jest w zespole od dwunastu lat. Szacował pięćdziesiąt, może sześćdziesiąt, trudno powiedzieć na pewno. Otworzyła bibliotekę źródłową komputera mainframe i zaczęła czytać pliki COBOL pojedynczo.

Sześć dni później miała listę czterdziestu siedmiu programów. Nie była pewna, czy jest kompletna.

Sześciodniowe ręczne przeszukiwanie starszej bazy kodu to dla starszej wersji odpowiednik szukania dokumentu poprzez otwieranie wszystkich szuflad szafek na dokumenty w budynku bez planu piętra. Szafki na dokumenty istnieją. Dokumenty się w nich znajdują. Budynek nie ma indeksu, paska wyszukiwania ani możliwości zapytania „gdzie jest wszystko, co o tym wspomina?”. Przeszukiwanie starszych baz kodu w przedsiębiorstwach ma na celu rozwiązanie właśnie tego problemu – umożliwienie jawnego przeszukiwania zasobów aplikacji COBOL lub mainframe w ciągu kilku sekund, a odpowiedzi można zweryfikować w oparciu o kod źródłowy, a nie tylko z pamięci.

Znajdź cokolwiek w kilka sekund

SMART TS XL sprawia, że ​​każde pole, program, kopiarka i zadanie w Twojej starszej bazie kodu może być przeszukiwane.

DOWIEDZ SIĘ WIĘCEJ…

Co wyszukiwanie korporacyjne oznacza dla starszego kodu

Wyszukiwanie korporacyjne w nowoczesnych środowiskach, takich jak SharePoint, Confluence, Slack czy Google Workspace, jest dobrze znane. Wpisujesz zapytanie, indeks zwraca uporządkowane wyniki, klikasz. Wyszukiwanie działa, ponieważ nowoczesne systemy treści zawierają metadane: tytuł, autora, datę, tagi i wystarczającą ilość tekstu, aby indeks pełnotekstowy generował sensowne wyniki.

Starsze bazy kodów różnią się pod każdym względem mającym znaczenie dla wyszukiwania:

Treść to kod, a nie proza. Pełnotekstowe wyszukiwanie frazy „CUST-BALANCE” w bibliotece źródłowej COBOL zwraca każdy plik zawierający dokładnie ten ciąg, w tym komentarze, definicje danych i odwołania do podziału procedur. Wyszukiwarka, która jest przydatna w przypadku tej treści, musi rozumieć składnię języka COBOL, a nie tylko tekst.

Relacje znajdują się w kodzie, a nie w katalogu. Połączenie między CUSTPROC i CUSTMSTR nie znajduje się w bazie danych. Znajduje się ono w poleceniu COPY wewnątrz CUSTPROC. Znalezienie tych połączeń wymaga analizy kodu, a nie indeksowania tekstu.

Inwentarz jest z definicji niekompletny. Nieudokumentowana, starsza baza kodu nie posiada wiarygodnego katalogu istniejących programów, ich funkcji ani powiązań. Mechanizmem odkrywania musi być wyszukiwanie.

Pytania mają charakter strukturalny, a nie oparty na słowach kluczowych. Programista przeszukujący starszą bazę kodu szuka wzorca strukturalnego: każdego programu, który wywołuje określony podprogram, każdego programu, który odczytuje określony zbiór danych pod określonym kluczem. Są to zapytania przeglądające graf, a nie zapytania o słowa kluczowe.

Sześć najcenniejszych wyszukiwań w bazie kodu legacy

#Wzorzec zapytaniaKto o to pyta?Co produkuje
1Odniesienie krzyżowe polaDeweloper, architektKażdy program, który odczytuje, zapisuje lub redefiniuje pole
2Zakres oddziaływaniaZmiana zarządu, kierownik technicznyPromień rażenia proponowanej zmiany schematu
3Martwy kodZespół modernizacyjnyProgramy bez żadnych odniesień do produkcji przychodzącej
4Wyszukiwanie wzorcówZgodność, bezpieczeństwoKażdy program pasujący do strukturalnego wzorca kodu
5Ekstrakcja reguł biznesowychAnalityk, BA, audytorWyjaśnienie w języku zrozumiałym i katalog reguł
6Narażenie regulacyjneZespół ds. RODO, HIPAA, PCIKażdy program, który uzyskuje dostęp do danych osobowych lub pól regulowanych

1. Odniesienia krzyżowe na poziomie pola: gdzie są wykorzystywane te dane?

„Znajdź każdy program, który odczytuje, zapisuje lub redefiniuje CUST-BALANCE”. To pytanie, na które programista we wstępie odpowiadał ręcznie przez sześć dni. Wyszukiwanie starszego kodu w przedsiębiorstwie pozwala na znalezienie odpowiedzi w ciągu kilku sekund, przechodząc przez graf zależności od definicji pola w copybooku do każdego programu zawierającego copybook i każdego akapitu, który odwołuje się do tego pola.

Rezultatem jest nie tylko lista programów, ale ustrukturyzowany spis, który odróżnia czytelników od autorów, redefinientów od komentatorów. Programista analizujący ten wynik wie nie tylko, że czterdzieści siedem programów odwołuje się do CUST-BALANCE, ale także, które czternaście z nich do niego zapisuje, które dwa redefiniują go, zmieniając jego układ, a które sześć odwołuje się do niego wyłącznie w komentarzach.

2. Zakres wpływu proponowanej zmiany

„Jeśli rozszerzę CUST-BALANCE z dziewięciu cyfr do jedenastu, co się zepsuje?” To pytanie z analizy wpływu, na które każda rada doradcza ds. zmian musi odpowiedzieć przed zatwierdzeniem zmiany schematu. Wyszukiwanie przebiega na zewnątrz od zmienionego pola: które programy zawierają definiującą je kopię (zakres kompilacji), które z tych programów zapisują pole do pliku płaskiego (zakres kontraktu danych), które systemy niższego rzędu odczytują te pliki płaskie (zakres międzysystemowy). Odpowiedzią jest promień rażenia, ustrukturyzowany i weryfikowalny.

3. Identyfikacja martwego kodu: co nigdy nie działa?

„Które programy w bibliotece CUSTMGMT nigdy nie są wywoływane przez żadne produkcyjne zadanie JCL?” To zapytanie wymaga śledzenia zależności przychodzących dla każdego programu w zakresie i filtrowania w poszukiwaniu tych, które nie mają żadnych przychodzących odwołań produkcyjnych. Rezultatem jest inwentaryzacja martwego kodu – programów, które istnieją w bibliotece, ale nigdy nie są wykonywane, co stanowi redukcję zakresu migracji, której każdy program modernizacyjny potrzebuje przed zadeklarowaniem budżetu.

4. Wyszukiwanie wzorców: znajdź każdy program, który wykonuje X

„Znajdź każdy program, który otwiera plik bez sprawdzania STATUSU PLIKU”. To wyszukiwanie zgodności, identyfikujące określony wzorzec kodu w całym portfolio. W przeciwieństwie do wyszukiwania słów kluczowych, wymaga to analizy strukturalnej: wyszukiwarka musi rozumieć składnię języka COBOL na tyle dobrze, aby rozpoznać, że polecenie OPEN, po którym następuje sprawdzenie STATUSU PLIKU, różni się od polecenia, które go nie zawiera. Znalezienie tego wzorca w portfolio czterech tysięcy programów w ciągu kilku minut stanowi różnicę między postawą zgodności ocenianą systematycznie a taką, która jest oceniana, gdy incydent ujawnia lukę.

5. Ekstrakcja reguł biznesowych: co to robi?

„Wyjaśnij, co robi GLPOST7 i wypisz wszystkie reguły, które stosuje”. To zapytanie o dokumentację – użytkownik chce zrozumieć cel i logikę programu bez czytania czterech tysięcy wierszy kodu COBOL. Wyszukiwanie w przedsiębiorstwie ujawnia zarys strukturalny: jakie pliki program odczytuje i zapisuje, jakie zawiera warunki EVALUATE, jakie podprogramy wywołuje i jakie dane przetwarza. W połączeniu ze zrozumieniem przez sztuczną inteligencję, ten zarys strukturalny staje się prostym wyjaśnieniem z ustrukturyzowanym katalogiem reguł.

6. Narażenie regulacyjne: gdzie przetwarzane są dane regulowane?

„Znajdź każdy program, który uzyskuje dostęp do pól danych osobowych (PII): imię i nazwisko, numer ubezpieczenia społecznego, data urodzenia, adres”. To zapytanie o inwentaryzację zgodności. Wyszukiwarka skanuje definicje pól we wszystkich kopiach, identyfikuje pola pasujące do wzorców nazewnictwa danych osobowych (PII) i sygnatur typów danych (PIC 9(9) dla numeru ubezpieczenia społecznego, PIC X(30) dla imienia i nazwiska) i śledzi każdy program, który zawiera te kopie. Rezultatem jest inwentaryzacja przetwarzania danych osobowych (PII), wymagana w przypadku wniosków o dostęp do danych osobowych zgodnie z RODO i ocen HIPAA.

Dlaczego standardowe narzędzia wyszukiwania nie potrafią tego zrobić

Narzędzia do ogólnego wyszukiwania korporacyjnego, takie jak Elasticsearch, Coveo, Glean i Microsoft Search, zostały stworzone z myślą o wyszukiwaniu dokumentów i wiedzy. Doskonale indeksują treści w języku naturalnym, klasyfikują je według trafności i wyświetlają najbliższe dopasowanie semantyczne do zapytania. Żadne z nich nie obsługuje języka COBOL.

Zastosowanie wyszukiwarki tekstowej do biblioteki źródłowej COBOL generuje wyniki zgodne z ciągiem zapytania, ale nie z intencją zapytania. Wyszukiwanie frazy „CUST-BALANCE” zwraca pliki zawierające te znaki, ale nie jest w stanie określić, czy dopasowanie jest definicją pola, poleceniem MOVE, kluczem READ, czy komentarzem. Nie jest w stanie przeszukać grafu zależności COPY, aby znaleźć programy odwołujące się do pola za pośrednictwem copybooka, a nie bezpośrednio. Nie jest w stanie odróżnić programów działających w środowisku produkcyjnym od programów będących martwym kodem. Nie jest w stanie podążać za poleceniem JCL DD do wywoływanego programu.

Nie są to ograniczenia jakości wyszukiwarki, lecz ograniczenia modelu wyszukiwania. Wyszukiwanie tekstu w kodzie jest błędem kategorii. Pytania, na które starsze bazy kodu wymagają odpowiedzi, to zapytania dotyczące grafów zależności, dopasowania wzorców strukturalnych oraz semantyczna analiza kodu. Narzędzie, które na nie odpowiada, musi rozumieć język, w którym napisany jest kod.

ASK AI: Język naturalny ponad zweryfikowanym kontekstem przedsiębiorstwa

Wszystkie sześć powyższych wzorców wyszukiwania wymagają precyzyjnych zapytań strukturalnych. Programiści pracujący na co dzień z COBOL-em mogą tworzyć takie zapytania. Architekci, analitycy, specjaliści ds. zgodności i kierownicy projektów, którzy potrzebują odpowiedzi, ale nie znają COBOL-a, nie mogą tego zrobić.

ASK AI wypełnia tę lukę. Działa na bazie zindeksowanej, ustrukturyzowanej i zweryfikowanej inteligencji aplikacji, SMART TS XL formułuje i akceptuje pytania w języku zrozumiałym:

„Który z tych programów nakłada karę za opóźnienie w płatnościach i gdzie?”

„Wyjaśnij ten 40-letni program prostym językiem”.

„Zmapuj każde zadanie i program, który ma związek z tabelą CLAIMS.”

„Wyodrębnij każdą regułę walidacji z cyklu płatności.”

Kluczową różnicą między ASK AI a ogólnym narzędziem do czatu opartym na sztucznej inteligencji jest kontekst początkowy. Ogólne narzędzie do czatu zaczyna się od pustego okna dialogowego, użytkownik musi znaleźć odpowiednie pliki, wkleić odpowiedni kod i mieć nadzieję, że nic istotnego nie zostało pominięte. ASK AI zaczyna od odkrytego przez przedsiębiorstwo, kontrolowanego zestawu wyników: rzeczywistych programów, kopii, tabel DB2 i zadań JCL, które… SMART TS XL jest zindeksowany i ustrukturyzowany. Każda odpowiedź pozostaje powiązana z materiałem źródłowym. Każde odkrycie można prześledzić do jego źródła.

To nie jest sztuczna inteligencja operująca na najlepszych przypuszczeniach z danych treningowych. To sztuczna inteligencja operująca na zweryfikowanym kontekście z rzeczywistej bazy kodu – to różnica między pytaniem kogoś, kto przeczytał podręcznik COBOL raz, a pytaniem kogoś, kto przeczytał każdą linijkę twojego konkretnego COBOL-a.

Trzy warstwy, jeden stos inteligencji:

  • Wyszukiwanie korporacyjne, odpowiedzi na zapytania strukturalne w ciągu kilku sekund, bez konieczności stosowania sztucznej inteligencji
  • ZAPYTAJ AI, język naturalny w zweryfikowanym kontekście przedsiębiorstwa, wewnątrz SMART TS XL
  • Złącze MCP, ta sama inteligencja, dostępna dla każdego zatwierdzonego asystenta AI z dowolnego urządzenia
Ogólny czat AISMART TS XL + ZAPYTAJ AI
Kontekst początkowyRęcznie wklejone fragmentyZestawy wyników odkryte przez przedsiębiorstwo
Relacje aplikacjiNieobecny na czasKod, dane, zadania, schematy, zależności
SkalaJeden plik na razTysiące programów do analizy tła
Możliwość śledzeniaOdpowiedź oddzielona od źródłaWyniki powiązane z liniami źródłowymi
PowtarzalnośćZależy od indywidualnych podpowiedziZapisane, udostępnione i sparametryzowane monity
Wybór modeluModel sprzedawcyModel zatwierdzony przez organizację

Łącznik MCP: wyszukiwanie w przedsiębiorstwie z dowolnego asystenta AI

Protokół Model Context Protocol (MCP) to otwarty standard, który umożliwia asystentom AI wywoływanie zewnętrznych narzędzi. SMART TS XL MCP Connector udostępnia pełną warstwę inteligencji aplikacji, wyszukiwanie korporacyjne, raporty porównawcze, pochodzenie terenowe, analizę przepływu sterowania, analizę wpływu jako narzędzia, z których może korzystać każdy asystent zgodny z MCP.

Praktyczny wynik: programista korzystający z Claude, ChatGPT, Microsoft Copilot, Gemini lub Grok może zadawać pytania dotyczące starszej bazy kodu w prostym języku za pomocą asystenta, z którego już korzysta, i otrzymywać odpowiedzi oparte na zweryfikowanych, powiązanych ze źródłem SMART TS XL analizy, bez otwierania innego narzędzia, bez eksportowania danych, bez kopiowania i wklejania kodu.

Interakcja ze strony łącznika MCP pokazuje dokładnie, jak to wygląda:

Użytkownik pyta: „Wyjaśnij program GLPOST7 i pokaż mi wszystko, czego dotyczy”.

Połączenia MCP: get_member_content, get_control_flow, cross_reference_report

Odpowiedź: „GLPOST7 publikuje codzienne transakcje w księdze głównej z kanału roszczeń. Odczytuje 2 tabele DB2, jest wywoływany przez 4 zadania wsadowe i współdzieli 3 kopie z cyklem płatności. Poniżej znajduje się instrukcja w prostym języku, z każdym krokiem powiązanym z wierszem źródłowym”.

Ta odpowiedź, wcześniej osiągalna jedynie przez eksperta COBOL-a, który spędzał godziny na czytaniu plików źródłowych, JCL i dokumentacji harmonogramu wsadowego, dociera w ciągu kilku sekund od dowolnego zatwierdzonego asystenta AI. Wiedza ta nie znajduje się w danych szkoleniowych LLM. Jest w… SMART TS XLWarstwa inteligencji aplikacji, udostępniana na żądanie za pośrednictwem złącza MCP.

Złącze MCP udostępnia sześć podstawowych funkcji każdemu podłączonemu asystentowi:

ZdolnośćCo to robi
Wyszukiwanie w całym przedsiębiorstwieProgramy, pola, zadania i typy danych w każdym indeksowanym środowisku
Źródło na żądanieTreści członkowskie i wstępnie przetworzony kod dla dowolnego programu lub podręcznika
Raporty referencyjneAnaliza wykorzystania w programach, zeszytach, tabelach i zadaniach
Pochodzenie pól i danychRelacje między polami i ich redefinicje za pomocą struktur danych COBOL
Przepływ sterowania i ASTStrukturalne rozumienie programów: drzewa składniowe, złożoność, graf wywołań
Kontekst organizacyjnyKontekst klienta, użytkownika i domeny, dzięki czemu asystenci mogą odpowiadać zgodnie z Twoimi zasadami

Wszystko to jest dostępne tylko do odczytu, uwierzytelniane i oparte na rolach, asystent AI uzyskuje dostęp do inteligencji, która SMART TS XL posiada uprawnienia udzielone przez organizację.

Od sześciu dni do sekund: co się zmienia

Wróćmy do autora na początku tego artykułu. Jej pytanie: „Znajdź każdy program, który odczytuje CUST-BALANCE”, to zapytanie o odsyłacz. SMART TS XLW wyszukiwarce korporacyjnej wpisuje nazwę pola i otrzymuje raport odsyłaczy: czterdzieści siedem programów, uporządkowanych według typu dostępu (odczyt/zapis/redefinicja), każdy powiązany z wierszem źródłowym, w którym wystąpił dostęp. Sześć dni zamienia się w trzydzieści sekund.

Starszy programista, który zgadł pięćdziesiąt lub sześćdziesiąt, nie myli się, mając wątpliwości. Ta niepewność jest uczciwą odpowiedzią, gdy pracuje się z pamięci na bazie kodu, która nigdy nie była systematycznie indeksowana. Niepewność znika po zindeksowaniu bazy kodu. To przypuszczenie staje się zweryfikowaną liczbą, a zweryfikowana liczba staje się podstawą każdej kolejnej analizy: oceny wpływu przed rozszerzeniem pola, zakresu migracji przed falą modernizacji, pokrycia testami przed zestawem regresji.

Przeszukiwanie nieudokumentowanych, starszych baz kodu w przedsiębiorstwie nie jest narzędziem zwiększającym produktywność. Jest to warunek konieczny do podejmowania pewnych decyzji dotyczących systemów, którymi przez dekady zarządzano za pomocą pamięci i intuicji. Inwentaryzacja powstaje w wyniku zapytania. Zależności powstają w wyniku analizy. Wiedza, która była zablokowana w kodzie, staje się dostępna dla każdego członka zespołu poprzez ustrukturyzowane wyszukiwanie, zapytania AI w języku potocznym oraz za pośrednictwem każdego zatwierdzonego asystenta AI, który łączy się przez platformę MCP.

W jaki sposób SMART TS XL Zapewnia wyszukiwanie korporacyjne w starszych bazach kodu

SMART TS XL'S wyszukiwanie korporacyjne Indeksuje cały krajobraz aplikacji, programy COBOL, strumienie zadań JCL, copybooki, tabele DB2, zestawy danych i wszystkie zależności między nimi, a także umożliwia wyszukiwanie za pomocą interfejsu wyszukiwania, który rozumie składnię COBOL, strukturę JCL i zależności międzyprogramowe. Zapytania, które zwracają odpowiedzi w ciągu kilku sekund, to te same zapytania, które wcześniej wymagały dni ręcznej analizy.

ASK AI rozszerza tę możliwość na język naturalny: architekci, analitycy, specjaliści ds. zgodności i kierownicy projektów mogą zadawać pytania dotyczące starszej bazy kodu prostym językiem i otrzymywać odpowiedzi oparte na zweryfikowanej analizie strukturalnej, a nie na ogólnej wiedzy modelu języka, który nigdy nie widział konkretnej bazy kodu. Odpowiedzi są ograniczone do konkretnych programów, powiązane z rzeczywistymi wierszami kodu i powtarzalne za pomocą zapisanych i udostępnianych szablonów podpowiedzi.

Złącze MCP Wprowadza tę inteligencję do każdego zatwierdzonego przez organizację asystenta AI: Claude, ChatGPT, Copilot, Gemini, Grok. Programista zadający pytanie dotyczące starszej bazy kodu z telefonu otrzymuje odpowiedź SMART TS XLInteligencja aplikacji firmy, ustrukturyzowana, zweryfikowana, połączona ze źródłem, bez konieczności przełączania narzędzi ani eksportowania danych. Łącznik MCP jest tylko do odczytu, uwierzytelniany i oparty na rolach: zatwierdzona sztuczna inteligencja działa w ramach uprawnień organizacji, a nie wokół nich.

Mapowanie zależności aplikacji stanowi fundament, na którym opiera się dokładność zapytań o odwołania krzyżowe: każde wywołanie CALL, każde COPY, każdy przepływ zbioru danych, każde odwołanie do programu JCL znajduje się w grafie zależności przed uruchomieniem jakiegokolwiek wyszukiwania. Raporty odwołań krzyżowych generowane przez wyszukiwarkę korporacyjną pochodzą z tego modelu strukturalnego, a nie z dopasowania słów kluczowych do tekstu źródłowego.

Analiza statyczna kodu dodaje warstwę strukturalną, która odróżnia wyszukiwarkę od platformy inteligencji kodu: zapytania, które znajdują każdy program o złożoności cyklomatycznej przekraczającej określony próg, każdy program otwierający plik bez sprawdzania STATUSU PLIKU, każdy program odwołujący się do pola w wariancie REDEFINES — są to zapytania strukturalne, a nie wyszukiwania tekstowe, i wymagają one przeanalizowanego i przeanalizowanego zrozumienia, jakie zapewnia analiza statyczna.

Transformacja w jednym wierszu: Sześć dni ręcznego przeszukiwania plików COBOL → trzydzieści sekund z zweryfikowanym raportem odniesień krzyżowych, ustrukturyzowanym według typu dostępu, powiązanym z wierszami źródłowymi.

Baza Kodu Wie. Teraz Ty Możesz Ją Zapytać.

Wiedza, którą w końcu uzyskuje się po sześciu dniach ręcznego wyszukiwania, zawsze znajdowała się w bazie kodu. Każdy program odczytujący CUST-BALANCE zawsze znajdował się w bibliotece źródłowej. Polecenia COPY, które łączą każdy program z copybookiem, zawsze znajdowały się w źródle. Język JCL definiujący kontekst wykonania zawsze znajdował się w bibliotece zadań. Problemem nie był brak informacji, lecz brak mechanizmu umożliwiającego ich wyświetlenie.

Przeszukiwanie starszych baz kodu w przedsiębiorstwie to właśnie ten mechanizm. Indeksowana, ustrukturyzowana i możliwa do zapytania inteligencja aplikacji odpowiada na strukturalne pytania dotyczące kodu w ciągu sekund, a nie dni, a za pośrednictwem ASK AI i łącznika MCP odpowiada na te pytania prostym językiem z poziomu dowolnego zatwierdzonego asystenta AI używanego przez organizację.

Baza kodu zawsze znała odpowiedź. Teraz każdy w zespole może ją zadać.