MODELOWANIE STRATEGII ZARZĄDZANIA PROJEKTEM SYSTEMU INFORMATYCZNEGO Zbigniew Buchalski Wprowadzenie We współczesnym świecie. kaŝda w zasadzie gałąź nauki i techniki jest na trwałe związana z nieustannie rozwijającą się komputeryzacją..zarówno w miejscu pracy, jak i przy wykonywaniu codziennych czynności posługujemy się wieloma elementami systemu informatycznego oraz korzystamy z wielu nowoczesnych technologii informatycznych. Nasze otoczenie, to komputery posiadające ogromne moce obliczeniowe, przestrzenie dyskowe dla danych, obsługujące skomplikowane aplikacje ułatwiające nam pracę, jak i dostarczające rozrywki. KaŜdy komputer obsługuje wiele dodatkowych urządzeń zewnętrznych będących źródłem danych dla niego bądź prezentujących efekty jego pracy. Sprzęt informatyczny jednakŝe szybko się starzeje i wymaga częstych modernizacji. Nowe podzespoły komputerowe, urządzenia WE/WY coraz częściej stwarzają problemy uŝytkownikom w skonfigurowaniu odpowiedniego systemu informatycznego. Potrzebni są wtedy fachowcy z dziedziny sprzętu komputerowego, sieci komputerowych i nowych technologii informatycznych, aby dobrać odpowiedni system informatyczny zaspokajający potrzeby uŝytkowników.
Modelowanie strategii zarządzania projektem systemu informatycznego oznacza akt wyboru jednej moŝliwości (kierunku) działania spośród pewnego ich zestawu. Wybór ten moŝe być wykonywany na podstawie określonej sekwencji działań, które prowadzą do wyselekcjonowania najkorzystniejszej (optymalnej) alternatywy. Istotną rolę we wspomaganiu procesu decyzyjnego odgrywają systemy ekspertowe [Buch06a; KrRa94; Lieb96; Nied06]. Systemy ekspertowe pozwalają na transfer wiedzy od ekspertówspecjalistów z zakresu problematyki objętej dziedziną systemu do uŝytkowników tych systemów. Pomocne są wszędzie tam, gdzie istnieje duŝy zasób wiedzy w oparciu o którą trzeba podejmować wiele decyzji [Buch06b; Radz90; Ziel00]. Celem niniejszego artykułu jest opis i analiza systemu ekspertowego o nazwie PROINF, którego zadaniem jest wypracowanie optymalnych strategii zarządzania projektem systemu informatycznego dla róŝnych grup uŝytkowników. Projektowanie systemu informatycznego System informatyczny to zbiór powiązanych ze sobą elementów, którego funkcją jest przetwarzanie danych przy uŝyciu techniki komputerowej. Na systemy informatyczne składają się takie elementy, jak: sprzęt, czyli komputery oraz urządzenia słuŝące do przechowywania danych, urządzenia słuŝące do komunikacji pomiędzy sprzętowymi elementami systemu,
urządzenia słuŝące do komunikacji między uŝytkownikami a systemem informatycznym, urządzenia słuŝące do odbierania danych ze świata zewnętrznego (np. czujniki elektroniczne, kamery, skanery), urządzenia słuŝące do wpływania systemów informatycznych na świat zewnętrzny - elementy wykonawcze (np. silniki sterowane komputerowo, roboty przemysłowe, sterowniki urządzeń mechanicznych, itp.), urządzenia słuŝące do przetwarzania danych nie będące komputerami, oprogramowanie, zasoby ludzkie, elementy organizacyjne, czyli procedury korzystania z systemu informatycznego, instrukcje robocze, itp., elementy informacyjne, bazy wiedzy ontologie dziedzin, w których uŝywany jest system informatyczny, np. podręcznik księgowania w przypadku systemu finansowo-księgowego. System informatyczny stanowi więc zbiór wielu elementów tworzących sprawne środowisko pracy. Elementy te muszą być tak dobrane, aby całość mogła działać, a jednocześnie musi spełniać wymogi uŝytkownika. Czynniki, które są istotne przy jego projektowaniu moŝna podzielić na trzy następujące grupy: 1 o. Przeznaczenie danego systemu informatycznego. Z pracą biurową (edycja tekstów, drukowanie, arkusze kalkulacyjne, itp.) poradzi sobie praktycznie kaŝdy komputer, nawet o najsłabszych parametrach. Podobnie jest z przeglądaniem stron WWW czy odtwarzaniem multimediów. JeŜeli komputer ma wykonywać bardziej wymagające pra-
ce, np. pracować jako serwer lub sprzęt do obróbki wideo i audio potrzebne są wydajniejsze podzespoły, co pociąga za sobą większe wydatki. Potrzebna jest odpowiednia równowaga między wydajnością a kosztami. NaleŜy odpowiednio dobierać pojedyncze elementy zestawu komputerowego tak, aby spełniał on odpowiednie wymogi, a jednocześnie nie przekroczył środków finansowych przeznaczonych na jego zakup. 2 o. RóŜnorodność urządzeń i podzespołów w danej kategorii. Wszystkie podzespoły występują w kilku wersjach, których ilość jest często bardzo duŝa i utrudnia znacznie wybór właściwej. Taka róŝnorod-ność wynika z parametrów tychŝe elementów, które sprawiają, Ŝe jedne są bardziej wydajne od innych, róŝnią się teŝ rodzajem zastosowania i oczywiście ceną. Przykładowo karty graficzne podzielone są na modele wg wydajności, która wynika z róŝnych zastosowanych układów elektronicznych takich, jak procesory GPU (ang. Graphics Processing Unit), moduły pamięci a takŝe dodatkowe układy takie, jak przetworniki VIVO (Video In Video Out) pozwalające na zgrywanie sekwencji wideo z zewnętrznych źródeł takich, jak kamera czy magnetowid. 3 o. Mnogość producentów podzespołów i róŝnorodność wśród podzespołów tego samego typu. KaŜda firma produkująca podzespoły posiada swoją markę na rynku elektronicznym, która mówi o jakości oferowanych wyrobów. Jedno urządzenie moŝe cechować się róŝnorakimi parametrami technicznymi takimi, jak: ilość, rodzaj i szybkość pamięci, róŝne zegary taktujące układ (np. karty graficzne), szybkość transferu i wielkość bufora pamięci (dyski twarde), które wpływają na wydajność i jednocześnie koszt elementu.
Opis systemu PROINF W punkcie tym podano opis zaprojektowanego i zbudowanego systemu ekspertowego PROINF wspomagającego projektowanie systemu informatycznego dla róŝnych grup uŝytkowników. Implementacja komputerowa tego systemu powstała w oparciu o narzędzie EXSYS Corvid, które omówione zostanie w następnym punkcie niniejszego artykułu.. System PROINF ma za zadanie wspomóc uŝytkownika w doborze odpowiednich elementów systemu informatycznego uwzględniając jego potrzeby oraz koszt realizacji tego przedsięwzięcia. Wybór tej dziedziny zastosowania systemu ekspertowego moŝna uzasadnić ciągłym zapotrzebowaniem na sprzęt komputerowy i dodatkowy osprzęt informatyczny, który nieustannie ulega modernizacjom, zmianom pod względem moŝliwości, wydajności i zastosowań. Dobór właściwych elementów systemu informatycznego nie jest prosty, a niekiedy wręcz niemoŝliwy dla przeciętnego człowieka bez odpowiedniej wiedzy i doświadczenia bądŝ bez konsultacji ze specjalistą. Wykorzystanie systemu ekspertowego do wspomagania procesu projektowania systemu informatycznego wydaje się idealnym rozwiązaniem tego problemu. Budowa systemu ekspertowego PROINF została podzielona na kilka etapów. Proces ten był długotrwały i pracochłonny. Główny nacisk poło- Ŝony został na dobór podzespołów komputerowych oraz urządzeń peryferyjnych systemu informatycznego.
Aby określić charakterystykę problemu budowy systemu informatycznego naleŝało przeanalizować dostępne podzespoły i urządzenia komputerowe oraz zbadać ich uŝyteczność w zaleŝności od zastosowania. Najczęściej występujące zastosowania systemów informatycznych, to: procesy zarządzania i podejmowania decyzji, komputer biurowy (podstawowe zastosowanie to arkusze kalkulacyjne, edytory tekstu i aplikacje typowo biurowe), komputer domowy (zastosowanie podobne jak komputer biurowy oraz zwiększone wymagania co do wydajności ze względu na pracę z wieloma aplikacjami na raz), komputer multimedialny (dodatkowe zastosowania multimedialne, jak oglądanie filmów, słuchanie muzyki, gry komputerowe, przeglądanie stron WWW, itp.), komputerowe centrum rozrywki (posiadający wszystkie nowinki technologiczne, bardzo wydajny i szybki komputer do najnowszych wymagających gier 3D, dający sobie radę z obróbką audio i wideo, itp.), serwery (magazyny danych posiadające rozbudowane macierze dyskowe, wieloprocesorowe). Analiza urządzeń i podzespołów pod względem ich podziału i przypisania do danych grup zastosowań doprowadziła do wyciągnięcia szeregu wniosków. Podstawowe wnioski to: duŝa róŝnorodność dostępnych urządzeń i podzespołów składowych zestawu komputerowego zwłaszcza w obrębie danej kategorii (np. wiele modeli kart graficznych róŝniących się niekiedy tylko nazwą),
mnogość zastosowań podzespołów danej kategorii trudność z jednoznacznym przyporządkowaniem elementu do danej grupy zastosowań, brak sformalizowanej wiedzy dotyczącej duŝej gamy zastosowań róŝnych podzespołów. Wstępna analiza pokazała duŝą złoŝoność problemu budowy odpowiedniego systemu informatycznego. Wydzielono początkowo podstawowe grupy podzespołów ze względu na ich funkcje w systemie informatycznym i podzielono na grupy modeli takie, jak: procesor (np. gr1: AMD Sempron i Intel Celeron), płyta główna (np. gr1: płyta główna dla procesorów Intel Celeron / Pentium4 (socket 775, chipset 945)), pamięć RAM (np. gr1: wielkość 512MB), karta graficzna (np. gr1: karta graficzna typu GeForce 7100 / Ati Radeon X300), karta dźwiękowa (np. gr1: zintegrowana na płycie głównej), dysk twardy (np. gr1: pojemność 80GB), zasilacz (np. gr1: moc 350W 450W), napęd optyczny. Ustalono następnie grupy zastosowań mających decydujące znaczenie dla wyboru odpowiedniego typu podzespołu. W przypadku wyboru grupy określającej rodzaj procesora wyróŝniono: zastosowanie komputera do gier, zastosowanie komputera do multimediów, złoŝoność obliczeniowa, obróbka wideo,
typ procesora dwurdzeniowy. Ostatecznym etapem budowy systemu PROINF było zbudowanie drzewa decyzyjnego i zapis reguł w bazie wiedzy. Informacje na temat wymagań dostarcza uŝytkownik systemu podczas sesji z programem odpowiadając na kolejne pytania kwestionariusza takie, jak: Czy uŝytkownik planuje obróbkę video (kodowanie / dekodowanie / nagrywanie / zgrywanie)?, Czy uŝywane będą złoŝone obliczeniowo aplikacje np. w pracy laboratoryjnej, przemysłowej, biurze projektów?, Czy uŝytkownik planuje odtwarzać filmy, przeglądać strony WWW, słuchać muzyki?. Szkieletowy system ekspertowy EXSYS Corvid Szkieletowy system ekspertowy EXSYS Corvid jest produktem firmy EXSYS Inc., będącej wcześniej częścią korporacji Multi Logic. System ten powstał w wyniku zapotrzebowania na wiedzę ekspercką w Internecie. Przy tworzeniu aplikacji wykorzystano doświadczenie uzyskane podczas pisania programu EXSYS Developer oraz wcześniejszych wersji systemów szkieletowych serii EXSYS (np. EXSYS Pro. rozwijany jeszcze przez Multi Logic). EXSYS Corvid jest narzędziem przeznaczonym do szybkiego tworzenia systemów ekspertowych na stronach HTML. Jego funkcjonalność jest zdeterminowana trzema nowymi rozwiązaniami, które według producenta mają zrewolucjonizować tworzenie systemów ekspertowych w sieci. Są
to: struktura obiektowa (ang. object structure), bloki logiczne (ang. Logic Blocks) oraz aplety Java. Struktura obiektowa to nic innego, jak obiektowe podejście do zmiennych przy zachowaniu podejścia strukturalnego w projektowaniu systemów decyzyjnych. Corvid wykorzystuje znany z Visual Basic a model programowania, czyli połączenie obiektowości z podejściem strukturalnym. W poprzednich wersjach EXSYS logika była reprezentowana przez drzewa logiczne i indywidualne reguły IF/THEN. Niestety, duŝo systemów wymaga wielu drzew decyzyjnych, co przysparza kłopotów przy organizacji logiki. Bloki logiczne wprowadzone w EXSYS Corvid mają za zadanie wspomóc projektanta systemu ekspertowego przy organizacji logiki. Mogą nimi być róŝne zestawy reguł lub cała baza wiedzy. Pozwala to na uporządkowanie wiedzy w bloki, które zachowują się jak obiekty. Corvid pozwala na przesyłanie systemu poprzez aplety Javy, natomiast komunikacja z uŝytkownikiem realizowana jest poprzez strony HTML. Aplikacje tworzone w Corvidzie przesyłane są w ok. 100kB apletach. Twórca systemu ekspertowego wybiera tylko pytanie i sposób jego zadania. Korzystając z moŝliwości HTML a wyniki wnioskowania moŝna umieszczać w odpowiednio sformatowany sposób, dzięki czemu system staje się czytelniejszy. Aplet Corvid a zapewnia duŝą funkcjonalność dla większości systemów ekspertowych. Jeśli jednak zajdzie potrzeba na dodanie nowej funkcji, to istnieje moŝliwość komunikowania się z innymi apletami na stronie. Jeśli chodzi o pobieranie lub obliczanie danych dostępnych tylko z serwera, to moŝna wykorzystać skrypty CGI, ASP i JSP. Fun-kcjonalność
sieciowa jest najmocniejszą stroną tego produktu wyko-rzystywaną przez największe firmy. EXSYS Corvid, tak jak kaŝdy szkieletowy system ekspertowy, pozwala na automatyzację pracy w dziedzinie zapotrzebowania na wiedzę. Przebieg procesu wnioskowania Środowisko EXSYS Corvid pozwala programiście na wygodne i szybkie zaimplementowanie algorytmów wnioskowania dla budowanego systemu ekspertowego. W omawianym systemie PROINF zastosowane zostało wnioskowanie mieszane. Poprzez odpowiednie funkcje takie, jak DERIVE CONF oraz DERIVE [nazwa zmiennej] umieszczone zostają wszystkie zmienne typu CONF oraz zmienne innych typów wybrane przez uŝytkownika na stosie zadań. Następnie w procesie wnioskowania w systemie PROINF algorytm wnioskowania w przód rozpoczyna się od umieszczenia hipotezy na stosie zadań. Następnie system przegląda listę faktów w bazie wiedzy, sprawdzając czy nie ma tam odpowiedzi na postawioną hipotezę. JeŜeli znajduje się tam juŝ fakt, który daje się dopasować do hipotezy, to następuje zakończenie procesu wnioskowania i jest generowany odpowiedni komunikat. W przypadku, gdy po przejrzeniu całej bazy faktów system nie moŝe dać odpowiedzi na postawioną hipotezę, podejmowane są kroki w wyniku których generowane są nowe fakty. Uruchamiane są reguły, których przesłanki są prawdziwe. Wyznacza się zbiór reguł moŝliwych do zastosowania w danym etapie wnioskowania. Wybierana i uaktywniana jest
jedna z reguł. Proces wnioskowania jest kontynuowany tak długo, aŝ zostanie osiągnięty cel lub gdy nie moŝna uaktywnić więcej reguł. Algorytm wnioskowania w przód przedstawiony został na poniŝszym schemacie:
Rys2. Schemat algorytmu wnioskowania w przód Źródło: [Mula96]
W przypadku, gdy w procesie analizowania danej reguły w części warunkowej pojawi się nowa hipoteza system automatycznie podejmuje akcje wnioskowania wstecz próbując wykazać jej prawdziwość. Sprawdzane są kolejne reguły zawierające nową hipotezę bądź teŝ system zadaje pytanie uŝytkownikowi o warunek. Po sprawdzeniu wszystkich zmiennych ze stosu zadań system kończy wnioskowanie i przedstawia wyniki. Uwagi końcowe Przedstawiony w niniejszym artykule system PROINF na tym etapie budowy i złoŝoności potrafi dość sprawnie utworzyć szkielet konfiguracji i oszacować koszt budowy systemu informatycznego. Rozbudowanie systemu o kolejne reguły, a takŝe połączenie z bazami danych podzespołów pozwoliłoby prawdopodobnie na budowę konfiguracji systemu informatycznego na poziomie zbliŝonym do tego, jaki zaproponowałby ekspert. Mimo duŝej złoŝoności zagadnienia projektowania systemu informatycznego udało się stworzyć system ekspertowy, którego odpowiedzi są trafne i zadowalające. Baza wiedzy systemu PROINF zawiera ponad 200 reguł. System PROINF bazuje na odpowiedziach typu tak/nie bądź pochodzących z niewielkiego zbioru dyskretnego. Literatura [Buch06a] Buchalski Z.: Knowledge Management of Expert System Based on the Symbolic Representation of Natural Language Sentences, [w:] Information Systems Architecture
[Buch06b] [KrRa94] [Lieb96] [Mula96] [Nied06] [Radz90] [Ziel00] and Technology, L. Borzemski, A. Grzech, J. Świątek, Z. Wilimowska (eds.), Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 2006. Buchalski Z.: Zarządzanie wiedzą w podejmowaniu decyzji przy wykorzystaniu systemu ekspertowego, [w:] Bazy danych. Struktury, algorytmy, metody, Wydaw-nictwo WKiŁ, Warszawa 2006. Krishnamoorthy C.S., Rajeev S.: Artificial Inteligence and Expert Systems for Engineers, CRC Press, London 1994. Liebowitz J.: The Handbook of Applied Expert Systems, CRC Press, London 1996. Mulawka Jan J.: Systemy ekspertowe, Wydawnictwo Naukowo-Techniczne, Warszawa 1996. Niederliński A.: Regułowo-modelowe systemy ekspertowe, Pracownia Komputerowa Jacka Skalmierskiego, Gliwice 2006. Radzikowski W.: Komputerowe systemy wspomagania decyzji, Wydawnictwo PWE, Warszawa 1990. Zieliński J.: Inteligentne systemy w zarządzaniu. Teoria i praktyka, Wydawnictwo PWN, Warszawa 2000. Dr inŝ. Zbigniew Buchalski Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska ul. Janiszewskiego 11/17