GRAFICZNA ANALIZA PROGRAMÓW SAS GRAPHICAL ANALYSIS OF SAS PROGRAMS. 1. Wstęp. STUDIA INFORMATICA 2010 Volume 31 Number 3 (91)

Podobne dokumenty
ZESTAW 1 SAS 4GL. Język stworzony na potrzeby przetwarzania dużych zbiorów danych. Składają się nań:

Przypisywanie bibliotek w architekturze SAS

Projektowanie baz danych za pomocą narzędzi CASE

MS Visual Studio 2005 Team Suite - Performance Tool

Wprowadzenie do SAS. Wprowadzenie. Historia SAS. Struktura SAS 8. Interfejs: SAS Explorer. Interfejs. Część I: Łagodny wstęp do SAS Rafał Latkowski

PAKIETY STATYSTYCZNE

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Język UML w modelowaniu systemów informatycznych

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

REFERAT PRACY DYPLOMOWEJ

GNU GProf i GCov. przygotował: Krzysztof Jurczuk Politechnika Białostocka Wydział Informatyki Katedra Oprogramowania ul. Wiejska 45A Białystok

Przepływy danych. Oracle Designer: Modelowanie przepływów danych. Diagramy przepływów danych (1) Diagramy przepływów danych (2)

SAS 4GL Podsumowanie.

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

MentorGraphics ModelSim

ZARZĄDZANIE PROCESAMI I PROJEKTAMI. Zakres projektu. dr inż. ADAM KOLIŃSKI ZARZĄDZANIE PROCESAMI I PROJEKTAMI. Zakres projektu. dr inż.

Proces ETL MS SQL Server Integration Services (SSIS)

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

SAS Access to Hadoop, SAS Data Loader for Hadoop Integracja środowisk SAS i Hadoop. Piotr Borowik

Maciej Kiewra Quality Business Intelligence Consulting

Użycie Visual Basic for Applications ("VBA")

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

Tytuł: PRZETWARZANIE DANYCH W SAS Autor: Wioletta Grzenda, Aneta Ptak-Chmielewska, Karol Przanowski, Urszula Zwierz. Wstęp

Wprowadzenie do SAS 4GL Zapoznanie ze środowiskiem SAS University Edition oraz SAS Studio. Podstawowe pojęcia środowiska SAS.

Hurtownie danych - przegląd technologii

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

PROJEKT INTERFEJSU UśYTKOWNIKA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

QUERY język zapytań do tworzenia raportów w AS/400

Procesowa specyfikacja systemów IT

Wdrożenie modułu płatności eservice. dla systemu Magento

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Modelowanie obiektowe

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

SPIS TREŚCI: KARTY GRAFICZNE... 15

Spis treści 3. Spis treści

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

METODY REPREZENTACJI INFORMACJI

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Zabezpieczanie dostępu do bibliotek w SAS 9.4

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Programowanie obiektowe zastosowanie języka Java SE

Ustawienia kolorów w Fiery Command WorkStation 6 FS200

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

Wprowadzenie (17) Część I. Makra w Excelu - podstawy (23)

INFORMATYKA W SELEKCJI

Elektronika samochodowa (Kod: ES1C )

Aplikacje w środowisku VBA. Visual Basic for Aplications

Wprowadzenie do Hurtowni Danych. Mariusz Rafało

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

KATEGORIA OBSZAR WIEDZY

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

Projektowanie i wdrażanie systemów informatycznych (materiały do wykładu cz. II)

PAKIETY STATYSTYCZNE

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

ASPEKTY PRACY DZIAŁU STATISTICAL PROGRAMMING I RELACJE Z DATA MANAGEMENT MARZENA MARCINOWSKA

SAS Podstawowe informacje przed ćwiczeniem 1

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Hurtownie danych - przegląd technologii

Laboratorium 10 Temat: Zaawansowane jednostki testowe. Operacje na plikach. Funkcje.

Obróbka po realnej powierzchni o Bez siatki trójkątów o Lepsza jakość po obróbce wykańczającej o Tylko jedna tolerancja jakości powierzchni

STATYSTYKA OD PODSTAW Z SYSTEMEM SAS. wersja 9.2 i 9.3. Szkoła Główna Handlowa w Warszawie

Pobieranie argumentów wiersza polecenia

5. Arkusz kalkulacyjny Excel 205

Cel szkolenia. Konspekt. Opis kursu

Technologie informacyjne - wykład 12 -

Język UML w modelowaniu systemów informatycznych

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Robert Barański, AGH, KMIW Writing TDM and TDMS Files in LabVIEW v1.0

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

CouchDB. Michał Nowikowski

ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów AUTOR: ADAM KOLIŃSKI ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów

Przywracanie parametrów domyślnych. Przycisnąć przycisk STOP przez 5 sekund. Wyświetlanie naprzemienne Numer parametru Wartość parametru

Oracle PL/SQL. Paweł Rajba.

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Spis treści MONITOR PRACY... 4

Wizualizacja pogody dla windsurferów

Praca z programem PLANS

Transkrypt:

STUDIA INFORMATICA 2010 Volume 31 Number 3 (91) Grzegorz NOWAK Politechnika Łódzka, Katedra Informatyki Stosowanej GRAFICZNA ANALIZA PROGRAMÓW SAS Streszczenie. Artykuł opisuje propozycję narzędzia ułatwiającego analizę programów tworzonych w systemie SAS (4GL). W artykule zaproponowano wykorzystanie systemowego logu, generowanego przez SAS dla każdego wykonywanego programu, w celu automatycznego tworzenia odpowiadającego mu diagramu przetwarzania. Tworzone w postaci wektorowej diagramy mogą być wykorzystane w dokumentacji i diagnostyce programów SAS. Słowa kluczowe: SAS 4GL, analiza logu SAS, reprezentacja graficzna GRAPHICAL ANALYSIS OF SAS PROGRAMS Summary. The article describes an analysis tool for SAS 4GL programs. The paper proposes the use of the system log, generated by SAS for each executed program to automatically create a corresponding diagram of the processing. Created in the scalable form diagrams can be used for documentation and diagnostic purposes. Keywords: SAS 4GL, log SAS analysis, graphical representation 1. Wstęp Rozbudowane przetwarzania realizowane w języku programowania systemu SAS [1], mające na celu przygotowanie danych do przeprowadzania analiz i raportowania, zawierają dużą ilość tworzonych lub wykorzystywanych tablic i plików. Często liczba tych elementów jest na tyle duża, że pełna kontrola nad procesem staje się od pewnego momentu trudna i niezbędne staje się użycie narzędzia wizualizującego proces mapowania pomiędzy źródłem danych a ich docelową postacią. Naturalnie, dokumentacja techniczna przetwarzania jest bardzo pomocna i zwykle niezbędna. Jednak zwykle koszty jej wytworzenia (czas, kompetencje, systematyczność) powodują, że jest ona zaniedbywana, a często w ogóle nie istnieje.

96 G. Nowak Nawet dysponując dokumentacją techniczną, problem czytelności kodu jest dużym wyzwaniem, np. w przypadku skomplikowanych przetwarzań lub modyfikacji programów napisanych dużo wcześniej, czy w przypadku koniecznej ingerencji w kod napisany przez kogoś innego, np. w procesach ETL zasilania hurtowni danych oprogramowanych w systemie SAS, co podkreślono w [2], Analiza kodu źródłowego i dokumentacji technicznej wymaga sporego nakładu sił, kompetencji, a przede wszystkim czasu. Niniejsza propozycja ma na celu automatyczne dostarczenie odpowiedniej informacji w takiej formie, aby ułatwić i przyśpieszyć analizę tworzonych lub istniejących programów. Przeprowadzana jest ona na podstawie logu wykonywanego programu SAS i może być uzupełniona analizą kodu źródłowego. Log jest źródłem wielu bardzo cennych informacji na temat wykonywanego czy wykonanego wcześniej programu, zwłaszcza w przypadku uruchomienia programu z odpowiednimi opcjami, zwiększającymi zawartość informacji zapisywanej do logu (np. MPRINT, MLOGIC, SYSLOG czy FULLSTIMER). Informacje z logu są analizowane i przetwarzane do postaci graficznej, bardziej przyjaznej i ułatwiającej interpretację programu. Otrzymany model graficzny zawiera m. in. diagram przepływu danych, uwzględniający szczegółowy rysunek plików i tablic tworzonych i/lub wykorzystywanych w czasie przetwarzania oraz hierarchiczność wywołań makr, a także informację czasową dot. długości przetwarzania w poszczególnych etapach, liczbę zmiennych i obserwacji w tabelach, długość rekordów i ilość linii w plikach. Ponadto, model graficzny może być uzupełniony informacją tekstową, zawierającą: pełną inwentaryzację elementów składowych przetwarzania w postaci tablicy/listingu używanych plików, tablic, makrozmiennych, bibliotek; elementy tekstowej dokumentacji, o ile wprowadzono w odpowiedni sposób przy komentowaniu kodu źródłowego. 2. Podstawowe elementy przetwarzania i ich reprezentacja graficzna Analiza logu oparta jest na założeniu, że podstawowymi elementami składowymi przetwarzania SAS są pliki i tabele (wszelkie raporty np. _webout czy html traktowane są jako pliki). W przypadku plików istotnymi dla celów diagnostycznych cechami są: ścieżka dostępu, nazwa, minimalna i maksymalna długość rekordów, ilość linii, wielkość pliku. Dla tabel są to odpowiednio: biblioteka (nazwa referencyjna i fizyczna ścieżka do katalogu), nazwa, liczba obserwacji (wierszy) oraz zmiennych (kolumn). Ze względu na sposób dostępu pliki i tablice podzielono na: elementy źródłowe, dostarczają danych dla innych elementów (plików/tabel) i nie są tworzone w ramach rozpatrywanego przetwarzania.

Graficzna analiza programów SAS 97 elementy docelowe, są tworzone z innych elementów w procesie przetwarzania. elementy przejściowe, są tworzone i jednocześnie stanowią źródło informacji dla innych elementów. Przyjęto graficzne reprezentacje dla tablic i plików. Elementy te rozmieszczane są w węzłach diagramu odpowiednio do miejsca wystąpienia w procesie przetwarzania. 2.1. Tablice SAS Tablice przedstawiane są na diagramie w formie jak na rys. 1, zamieszczonym poniżej, wraz z ilością linii/obserwacji oraz ilością zmiennych. Przykładowy kod źródłowy SAS data table_a; z=1; y=2; x=3; Reprezentacja graficzna Log odpowiadający uruchomionemu kodowi. 46818 data table_a; 46819 z=1; 46820 y=2; 46821 x=3; 46822 NOTE: The data set WORK.TABLE_A has 1 observations and 3 variables. NOTE: DATA statement used (Total process time): real time 0.03 seconds cpu time 0.01 seconds Rys. 1. Tworzenie tablicy w SAS: kod, log i reprezentacja graficzna Fig. 1. Table creation In SAS: code, log and graphical representation Tablice będące źródłem danych dla innych tablic pozostają z nimi w relacji zależności reprezentowanych liniami. Dla przejrzystości diagramu linie nie są zakończone strzałkami, jednak należy je traktować kierunkowo: tzn. element na lewym krańcu linii jest elementem źródłowym, a element na prawym krańcu linii jest elementem docelowym (rys. 2). I tak: elementy stanowiące źródło informacji dla innych elementów posiadać będą tylko linie wychodzące. Podobnie linie przychodzące będą posiadały jedynie te elementy, które są tworzone w ramach przetwarzania z danych pochodzących z innych tabel/plików. Tablice nieposiadające jako źródła danych innej tablicy lub pliku są tworzone z wirtualnych danych, np. makrozmiennych lub danych typu cards, umieszczonych w kodzie.

98 G. Nowak Przykładowy kod źródłowy SAS data table_a; z=1; y=2; x=3; data table_b; set table_a; keep x y; Log odpowiadający uruchomionemu kodowi. 46818 data table_a; 46819 z=1; 46820 y=2; 46821 x=3; 46822 NOTE: The data set WORK.TABLE_A has 1 observations and 3 variables. NOTE: DATA statement used (Total process time): real time 0.03 seconds cpu time 0.01 seconds 46823 46824 data table_b; 46825 set table_a; 46826 keep x y; 46827 Reprezentacja graficzna NOTE: There were 1 observations read from the data set WORK.TABLE_A. NOTE: The data set WORK.TABLE_B has 1 observations and 2 variables. NOTE: DATA statement used (Total process time): real time 0.02 seconds cpu time 0.01 seconds Rys. 2. Tablice źródłowa i docelowa: kod, log i reprezentacja graficzna Fig. 2. Source and target tables: code, log and graphical representation Elementy przejściowe, tworzone z danych pochodzących z innych elementów i jednocześnie będące źródłem informacji dla innych elementów, zawierać będą zarówno linie dochodzące, jak i odchodzące. 2.2. Pliki Podobnie jak w przypadku tabel, pliki posiadają swoją reprezentację graficzną, przedstawioną na diagramie poniżej wraz z podaniem ilości linii oraz długości rekordów. Zamieszczony poniżej diagram (rys. 3) zawiera pliki i tabele. Pokazano przykładowy kod i odpowiadające mu elementy graficzne.

Graficzna analiza programów SAS 99 Kod źródłowy SAS FILENAME indata1 "C:/tmp/part1.txt"; FILENAME indata2 "C:/tmp/part2.txt"; FILENAME htmlfile "C:/tmp/test.html"; data tab1; length linia $500; infile indata1 linesize=32767 lrecl=500 missover end=koniec; input ; linia=_infile_; data tab2; length linia $500; infile indata2 linesize=32767 lrecl=500 missover end=koniec; input ; linia=_infile_; data tab3; set tab1 tab2; data _null_; file htmlfile linesize=32767 lrecl=500 ; set tab3 end=koniec; if _n_=1 then put '<html><body>'; put linia; if koniec then put '</body></html>'; Reprezentacja graficzna Log Prezentację logu pominięto ze względu na jego długość. Rys. 3. Tworzenie pliku w SAS: kod, log i reprezentacja graficzna Fig. 3. File creation In SAS: code, log and graphical representation Rysunek 3 przedstawia przetwarzanie, w którym informacje pochodzące z plików part1.txt i part2.txt zapisywane są do dwóch tabel: odpowiednio tab1 i tab2, które są następnie łączone w tablicę tab3 i na podstawie tej ostatniej generowany jest plik test.html. Na diagramie przedstawione są podstawowe informacje dotyczące tabel i plików: nazwa, liczba zmiennych tabeli lub minimalną i maksymalną długość rekordów dla plików, liczba obserwacji lub liczba linii dla plików oraz czas przetwarzania potrzebny do utworzenia tabeli lub pliku. Precyzję wyświetlania czasu można dowolnie regulować, domyślnie przyjęto ją na poziomie 0,1s (wówczas wszystkie wartości mniejsze od tego progu przedstawiane są jako równe zero). Dla czytelności rysunku nazwy tabel w jednym poziomie diagramu umieszczane są na przemian: pod tabelą i nad tabelą. Takie rozmieszczenie nazw jest ważne, zwłaszcza

100 G. Nowak w przypadku długich nazw tabel, które umieszczone obok siebie mogłyby się nakładać na rysunku. 2.3. Bibioteki (work/libname) W przetwarzaniu SAS tablice mogą być tworzone w bibliotece tymczasowej (WORK) bądź też w bibliotece zadeklarowanej, posiadającej nazwę i lokalizację na dysku. Oba rodzaje tablic mają różną reprezentację graficzną: przyjęto, że tablice w WORK są przedstawiane jako przezroczyste (mniej ważne), a tablice w bibliotekach stałych (ang. libnames) przedstawiane są w postaci zacieniowanej (zwykle są one istotniejsze, gdyż zachowywane są na dysku, po zakończeniu sesji SAS). Również ich nazwy są przedstawiane odmiennie: tablice utworzone w bibliotece tymczasowej WORK posiadają jednoczłonową nazwę, a tablice tworzone w stałej, zadeklarowanej bibliotece posiadają dwuczłonową nazwę w postaci: libname.name. Rys. 4. Diagram z tablicami w bibliotekach TMP i WORK Fig. 4. Diagram with tables in libraries TMP and WORK Powyższy diagram (rys. 4) przedstawia dwie wejściowe tablice: tab_a oraz tab_b, znajdujące się w libname TMP, które są źródłem informacji dla tablicy tab_c, tworzonej w bibliotece tymczasowej WORK oraz wyjściową tablicę tab_d, również utworzoną w bibliotece TMP, na podstawie danych pochodzących z tab_c. Tablica tab_c jest w tym przypadku tablicą przejściową. 3. Makra w programach SAS Jeżeli przetwarzanie SAS owe zawiera makra, mogą być one również pokazane na diagramie, co pokazano na rys. 5.

Graficzna analiza programów SAS 101 Rys. 5. Diagram przykładowego przetwarzania zawierającego makra Fig. 5. Diagram of an example program with macros Wszystkie elementy tworzone w ramach danego makro umieszczane są na wspólnej, zacieniowanej powierzchni z podaniem nazwy makro. Odpowiedni algorytm rozmieszczania elementów zapewnia, że powierzchnie makr są spójne i rozłączne (jedno makro nie może składać się z rozłącznych powierzchni) i nie nakładają się na siebie (dotyczy to makr na tym samym poziomie zagnieżdżenia). Jeżeli makro wykonywane jest kilka razy, na diagramie może wystąpić wielokrotnie. W przypadku makr zagnieżdżonych możliwe jest pokazanie wielu poziomów zagnieżdżenia. Jeżeli wybrano opcję pokazywania kilku poziomów makr zagnieżdżonych, w przeciwieństwie do pierwszego poziomu makr, kolejne są pokazywane na

102 G. Nowak diagramie w postaci zamkniętych linii przerywanych (bez wypełnienia). Pogarsza to jednak czytelność diagramu i dlatego ta opcja jest domyślnie wyłączona. 4. Porównanie do SAS DI oraz SAS Enterprise Guide Spośród dostępnych narzędzi SAS, dwoma które pozwalają na reprezentację graficzną przetwarzania są SAS Data Integration oraz SAS Enterprise Guide. SAS Data Integration [2], [3], to pakiet rozwiązań, zapewniający pełne spektrum potrzeb w zakresie integracji danych. Jednym z elementów pakietu jest interfejs graficzny dla projektantów procesów przetwarzania danych, którego zadaniem jest usprawnienie implementacji procesu integracji danych. Rys. 6. Diagram przetwarzania w SAS Data Studio Fig. 6. Diagram of an example program in SAS DI Studio Interfejs graficzny SAS DI pozwala na zaprogramowanie przetwarzania z wykorzystaniem standardowych, najczęściej używanych elementów składowych. Graficzna reprezentacja przetwarzań, którego przykład przedstawiono na rys. 6, pomaga w zrozumieniu jego przebiegu i daje również możliwość oceny statusu przetwarzania na bieżąco w trakcie jego wykonywania. W odniesieniu do zaproponowanego w niniejszym artykule rozwiązania (kod log diagram), SAS DI umożliwia generowanie kodu SAS na podstawie rysowanego graficznie schematu przetwarzania (diagram kod). Jest to zatem podejście odwrotne, mimo wielu zbieżności w zakresie graficznego modelowania przetwarzań. Z kolei SAS Enterprise Guide to środowisko wraz z zestawem narzędzi ułatwiającym pracę nad projektami obejmującymi zakres od integracji danych po tworzenie elastycznych analiz i raportów [4]. Jednym z elementów Enterprise Guide jest Project Designer, który pozwala na graficzną interpretację przetwarzania, na wizualizację organizacji: przetwarzania, kodu oraz danych powiązanych z projektem.

Graficzna analiza programów SAS 103 Rys. 7. Diagram przykładowego przetwarzania w SAS Enterprise Guide Fig. 7. Diagram of an example program in SAS Enterprise Guide SAS Enterprise Guide pozwala podobnie jak zaproponowane w niniejszym artykule rozwiązanie na tworzenie graficznego diagramu przetwarzania na podstawie kodu programu. Jednak logika diagramu i sposób reprezentacji przetwarzania są zupełnie odmienne. Interpretacja graficzna SAS Enterprise Guide zakłada przedstawienie innych informacji, niż proponowane narzędzie i zorientowana jest na ułatwienie zrozumienia przetwarzania SAS dla analityków niebędących programistami. Istotna różnica polega tu na wykorzystaniu w diagramie elementów różnorodnej natury, gdzie każdy typ pliku ma swoją indywidualną reprezentację graficzną i gdzie kod programu może być składnikiem diagramu, co przedstawiono na rys. 7. Natomiast zaproponowane w artykule podejście ukierunkowane jest na programistów i diagnostykę skomplikowanych przetwarzań. Diagramy składają się w tym przypadku wyłącznie z tabel i plików oraz łączących je relacji, bez graficznego rozróżniania typów plików. 5. Podsumowanie Zaproponowane narzędzie pozwala na analizę dowolnego logu SAS Base/Macro (nawet niepełnego, np. zakończonego błędem) bądź też wybranej części logu. W analizie logu automatycznie rozpoznawane i pomijane są komentarze (kod SAS umieszczony w komentarzach nie jest brany pod uwagę). Ponadto, narzędzie uwzględnia hierarchię wywołań makr i zagnieżdżonych programów. Diagramy tego typu mogą być wykorzystane w takich zakresach zastosowań, jak:

104 G. Nowak diagnostyka programów SAS BASE/MACRO; dokumentacja techniczna; graficzna reprezentacja przetwarzania (przepływ danych); tworzenie mapy zależności (impact analysis); diagnostyka błędów; śledzenie poprawności ilości obserwacji lub zmiennych. Diagramy tworzone są w postaci wektorowej (postscript), co umożliwia dowolne skalowanie rysunku bez utraty jego jakości. Systematyczne tworzenie diagramów z wykonywanych programów oraz ich analiza przez programistę wpływa również korzystnie na sam styl programowania, który staje się bardziej usystematyzowany, spójny i czytelny. BIBLIOGRAFIA 1. Dec Z.: Wprowadzenie do systemu SAS. Wydawnictwo Edition 2000, Kraków 1997. 2. Grasse, D., Nelson, G.: Base SAS vs. Data Integration Studio: Understanding ETL and the SAS tools used to support it. SAS Users Group International Conference, San Francisco 2006. 3. Olinger C., Weeks T.: The Ins and Outs of SAS Data Integration Studio. SAS Global Forum Proceedings, Orlando 2007. 4. Fecht M., Dhillon R.: A SAS Programmer s Guide to SAS Enterprise Guide. SAS Global Forum Proceedings, Orlando 2007. 5. Slaughter S., Delwiche L.: Writing Code in SAS Enterprise Guide. Western Users of SAS Software, Annual Conference Proceedings, Universal City, 2008. Recenzent: Dr inż. Henryk Josiński Wpłynęło do Redakcji 6 lipca 2010 r. Abstract The article describes an analysis tool for SAS 4GL programs (Base/Macro). The paper proposes the use of the system log, generated by SAS for each executed program to automatically create a corresponding diagram of the processing. Graphical model contains data flow diagram with files and tables used and created within the process. It takes into consideration

Graficzna analiza programów SAS 105 the hierarchy of macro procedures. The information about creation time of each element (file/table) is included one the diagram. Diagram contains also a number of variables and observations for tables and respectively a record length and line number for files. Diagrams created in the scalable form can be used for documentation and diagnostic purposes. Adres Grzegorz NOWAK: Politechnika Łódzka, Katedra Informatyki Stosowanej, ul. Stefanowskiego 18/22, 90-924 Łódź, Polska, g.nowak@kis.p.lodz.pl.