• Nie Znaleziono Wyników

Rozdział III Założenia do budowy adaptacyjnego agentowego modelu zarządzania projektami

3.3 Dobór metody modelowania

Najczęściej stosowanym podejściem do modelowania systemów społeczno-technicznych (zarządzanie projektem informatycznym) jest podejście procesowe. Podejście procesowe zakłada, że wszelkie działania konstrukcyjne prowadzą do modelu opierającego się na czynnościach wymagających na wejściu określonego, zdefiniowanego wkładu, mechanizmów przetwarzania oraz określonych rezultatów na wyjściu. Rezultaty powinny natomiast stanowić nową wartość. Cechą podejścia procesowego jest również obecność procesów pomocniczych wspierających realizację procesu głównego, jak również konieczność kwantyfikacji poszczególnych parametrów procesu — zarówno podawanych na wejściu, jak i tych wyjściowych.

Drugim podejściem do modelowania rozważanym w tej pracy jest podejście agentowe, które opiera się na wyodrębnieniu z rzeczywistości określonych encji opisywanych w postaci stanów i akcji, jakie mogą być podejmowane w określonym celu. Agenty są typowym rozwiązaniem zaliczanym do rozwiązań opartych na sztucznej inteligencji.

W celu przybliżenia podejścia agentowego do modelowania systemów poniżej przedstawiono podstawowe cechy agentów i systemów agentowych. Jest to konieczne także z punktu widzenia ostatecznego modelu nazwanego w niniejszej rozprawie adaptacyjnym agentowym modelem zarządzania projektami, który wykorzystuje właśnie podejście agentowe.

Agent programowy

Na przestrzeni lat powstało wiele definicji agentów i systemów agentowych[3,43,78, 100].

W 1995 Russel pisał o agentach jako „czymkolwiek, co może być uznane jako obserwujące otoczenie poprzez sensory i działające w ramach tegoż otoczenia poprzez efektory”. Druga ze znanych definicji (opracowana przez IBM) mówi o agentach jako jednostkach programowych, które podejmują działania w imieniu użytkownika lub innych programów i które są w pewnym stopniu niezależne i autonomiczne oraz stosują w swoim działaniu pewną wiedzę lub reprezentację celów i potrzeb użytkownika[13,82]. W pracy Wooldridge’a z 1997 roku można przeczytać o systemie agentowym

jako pewnym zamkniętym systemie komputerowym znajdującym się w pewnym otoczeniu, który to (system) posiada umiejętności elastycznego działania w tymże otoczeniu oraz działania polegającego na wypełnieniu celów, dla jakich został stworzony. Najbardziej precyzyjną definicją systemu agentowego spotykaną w literaturze[2,41,92] jest powstała w 1998 definicja Maesa, mówiąca o systemie agentowym jako autonomicznym systemie znajdującym się w dynamicznym otoczeniu, działającym niezależnie od narzucanych przezeń ograniczeń i wypełniającym w jego ramach zbiór celów lub poleceń, dla których został stworzony.

Przez systemy wieloagentowe (ang. multiagent systems) należy rozumieć systemy komputerowe oparte i zbudowane na bazie programów — agentów. Tworzenie takich systemów — programowanie agentowe — polega na stworzeniu zbioru programów agentowych i środowiska do ich działania [6,11,25,81]. Agentom w systemach agentowych przypisuje się określony zbiór własności, które są charakterystyczne dla każdego agenta. Do takich cech należy zaliczyć m.in. reaktywność, ukierunkowanie na osiąganie celów czy autonomię. Autonomia oznacza, że dany agent powinien wykonywać zlecone czy przypisane mu zadania samodzielnie. Mówiąc o zlecaniu zadań, należy także wymienić kolejną cechę systemu agentowego, czyli działanie w imieniu zlecającego. Mówi się wtedy o agencie jako delegacie, działającym w imieniu użytkownika, innego programu czy nawet innego agenta. Wyróżnikiem agentów są także umiejętności adaptacji (dostosowywania się do otoczenia), uczenia się i komunikacji[1,8,26]. Chodzi tu głównie o porozumiewanie się z innymi agentami (ale możliwa jest również komunikacja z użytkownikiem czy bazami danych). Dzięki takiej komunikacji działanie agenta może być skuteczniejsze [4,43,66]. Warto także nadmienić, że przed agentem często stawia się wymagania mobilności, tak aby program agentowy potrafił przemieścić się w inne miejsce (na inną maszynę, do innego środowiska) i tam kontynuował wykonywanie swoich zadań — zleconych mu działań. Konieczność współpracy agentów w różnych systemach wymaga także umiejętności ich wzajemnego współdziałania i współpracy. Zgodnie z tym co zostało powiedziane wcześniej, systemy agentowe mają służyć pozyskiwaniu wiedzy, jej przetwarzaniu i wnioskowaniu, stąd tak duże znaczenie agentów także w zarządzaniu ontologiami (czyli „bazami wiedzy o wiedzy”).

Obecność tych cech w systemach agentowych pozwala stwierdzić, że uzasadnione wydawało się wykorzystywanie agentów do analizy różnych zjawisk, również takich jak realia projektów informatycznych.

Rys. 3.4 Agent programowy a agent projektowy Źródło: opracowanie własne

W związku z przedstawionymi cechami agentów[22,30] i systemów oraz zgodnie z definicją IBM, że agentem może być każda jednostka, która działa w ściśle określonym celu na bazie pewnych przypisanych parametrów, agenty programowe można odnieść do struktur projektów informatycznych.

Skoro bowiem każdy agent programowy reprezentowany jest przez atrybuty oznaczające jego stany, które może przyjmować oraz akcje, jakie podejmuje w imieniu zlecającego, istnieje analogia do uczestników projektów. Uczestnicy projektów bowiem również posiadają określone cechy (odpowiednik stanów agenta programowego) oraz przejawiają określone zachowania (np. reagują na sygnały mówiące o konieczności wykonania danego zadania). Taka transformacja stanów i akcji agentów programowych do cech i zachowań uczestników projektów informatycznych pozwala uznać podejście agentowe za odpowiednie do modelowania struktur projektów informatycznych. Na tej bowiem podstawie można uczestników projektów określić mianem agentów (projektowych), których można opisać cechami i zachowaniami. Stosując takie podejście należy uznać, że koncepcja agentów programowych zostaje przeniesiona na płaszczyznę zarządzania w projektach informatycznych.

Z rysunku 3.4 wynika również, że transformacja może przebiegać w drugim kierunku. Czyli znając strukturę projektu, można zamodelować ją w systemie agentowym.

Jak wynika z powyższych rozważań, należy podkreślić także, że systemy agentowe zakładają stałą relację pomiędzy poszczególnymi agentami. To również można odnieść do typowych struktur projektowych, w których wszystkie elementy powiązane są relacjami.

Przy opracowaniu systemu agentowego założono, że wspomaganie kierowników projektów w podejmowaniu decyzji kierowniczych w projektach informatycznych będzie wtedy skuteczne, gdy uwzględni się odpowiednio dużo niezależnych bytów (agentów). Dlatego też w tym etapie (doboru metody modelowania) skoncentrowano się na zdefiniowaniu wszystkich możliwych autonomicznych jednostek wnioskujących (agentów oraz modułów sztucznej inteligencji), które będą wspomagały podejmowanie decyzji.

Stąd w proponowanym systemie wieloagentowym, oprócz agentów, uwzględniono dodatkowe elementy wspomagające przetwarzanie danych[29,76,83] i generowanie decyzji, takie jak:

 System ekspertowy — moduł wnioskujący, który na podstawie informacji zebranych o otoczeniu projektowym będzie w stanie zgromadzić dane.

 Ontologie, które będą czuwały nad poprawnością zadawanych pytań oraz pozyskiwanych odpowiedzi (słownik systemu).

 Inne moduły inteligentne, np. sztuczna sieć neuronowa, która na podstawie parametrów otrzymanych będzie w stanie dokonać analizy danych i przeprowadzić wnioskowanie.

Elementy te miały za zadanie uzupełnienie systemu agentowego o wiedzę przydatną w podejmowaniu decyzji w projektach informatycznych. Uznano, że mechanizm działania systemu będzie polegał na tym, że na podstawie kilku pozyskanych informacji od menedżerów zostanie przeprowadzony proces wnioskowania zakończony określoną decyzją. Założono na tym etapie również, że informacje będą pozyskiwane przez dedykowane agenty, a pytania i odpowiedzi tłumaczone za pomocą ontologii.

Stąd mechanizm działania systemu agentowego opierał się na funkcji pozyskiwania i przetwarzania informacji pozyskiwanych od menedżerów projektów odnośnie ograniczeń projektowych[48]. Pamiętając o cechach systemów agentowych, takich jak pozyskiwanie wiedzy, jej przetwarzanie i generowanie wniosków, uznano za konieczne zapewnić systemowi agentowemu zasilania w wiedzę za pomocą systemu ekspertowego i ontologii. Uznano również, że w celu realizacji procesów wnioskowania (prowadzących do podania sugestii, jakie dobre praktyki oraz narzędzia wykorzystać do realizacji zadań w projekcie informatycznym) w takim systemie agentowym powinien znaleźć się także system ekspertowy, który z jednej strony przetwarza wiedzę pozyskiwaną przez agenty, a z drugiej wykorzystuje wiedzę ekspercką zawartą w bazach wiedzy do generowania wskazówek co do wykorzystania dobrych praktyk zarządzania projektami informatycznymi. Już

w trakcie pierwszych badań zauważono również konieczność uwzględnienia dodatkowych modułów mogących wspomagać generowanie decyzji, takich jak aplikacje bazujące na formalnych metodach reprezentacji wiedzy (np. aplikacji wykorzystujących modelowanie rozmyte lub sieci neuronowe umożliwiające przetwarzanie nieprecyzyjnej i niepewnej wiedzy tak typowej dla projektów informatycznych). W oparciu o te założenia powstał submodel MAS, w którym zarówno ontologie, systemy ekspertowe, jak i pozostałe aplikacje wspierające pozyskiwanie wiedzy miały wspomagać kierowników projektów w podejmowaniu decyzji. Na rysunku 3.5 została przedstawiona koncepcja struktury omawianego submodelu MAS.

Rys. 3.5 Ogólna koncepcja modelu systemu agentowego do zarządzania technologiami (architektura submodelu MAS) Źródło: [51]

W submodelu MAS przyjęto zatem, że elementy wspierające wnioskowanie (generowanie decyzji), czyli zgodnie z założeniami — ontologie, system ekspertowy czy sztuczne sieci neuronowe, traktowane będą jako odrębne agenty całego systemu. Włączenie ich w cały system wymagało jednak zapewnienia odpowiednich mechanizmów współpracy i komunikacji. Ten wniosek wykorzystano do budowy adaptacyjnego agentowego modelu zarządzania projektami, w którym również zauważono konieczność definiowania wszystkich elementów struktury projektowej jako agenty w celu zapewnienia właściwego poziomu komunikacji między agentami.

Podczas prac nad submodelem MAS brano pod uwagę przede wszystkim tę cechę agentów, która dotyczyła samodzielnego pozyskiwania informacji i ich przetwarzania. Stąd duży ciężar podczas badań położono na rolę takich agentów, które mogą wspomagać procesy pozyskiwania takich informacji od menedżerów, które ułatwią podejmowanie decyzji co do doboru metody zarządzania projektem.

Podstawowym agentem pozyskującym informację w submodelu MAS jest przedstawiony na rysunku 3.5 agent pozyskujący informacje (A4). Zadaniem takiego agenta była bezpośrednia komunikacja z menedżerem projektu i zadanie pytań odnośnie poziomu zmiennych decyzyjnych.

Pozyskane informacje powinny zostać przekazane do centrum komunikacji (Centrum MAS), gdzie agent zarządzający podejmował decyzję, który agent dokona przetwarzania (i czy będzie potrzebne uruchomienie agenta ontologii A3 lub systemu ekspertowego A1). W submodelu MAS koncentrowano się w dużej mierze także na organizacji przepływów informacyjnych, stąd wykorzystanie Centrum MAS jako bufora w komunikacji między poszczególnymi agentami. Centrum

MAS pozwalało na wymianę informacji z pozostałymi agentami (czyli np. innymi aplikacjami wspomagającymi dokonywanie ocen, takimi jak sieci neuronowe czy algorytmy genetyczne), tak aby w efekcie agent wnioskujący podejmował optymalne decyzje. Warto zwrócić w tym miejscu uwagę na fakt, iż w pierwotnej koncepcji systemu pojawiły się zalążki struktury agentowej obecnej w ostatecznej wersji. Opisane centrum MAS przerodziło się w ostatecznej wersji w Agentowy System Zarządzania, czyli strukturę organizacyjną nadzorującą procesy przepływu informacji i zadań pomiędzy poszczególnymi uczestnikami.

W tym etapie badań rozwojowych nad doborem metody modelowania skoncentrowano się na wykorzystaniu cech agentów programowych w zarządzaniu projektami informatycznymi. Warto jednak w tymi miejscu nadmienić, że przeprowadzone analizy (rozdział I i II) pokazały, że problem zarządzania projektami jest dużo bardziej złożony i wymaga opracowania modelu nie tylko implementowanego jako system agentowy, ale pozwalającego na usprawnienia organizacyjne w projektach informatycznych, a także uwzględnienia procesów zarządczych i wytwórczych i dobrych praktyk zarządczych. Stąd też w opracowywaniu modelu usprawniającego zarządzanie projektami informatycznymi zdecydowano się wykorzystać połączenie podejścia procesowego oraz agentowego.

Uznano, że ostateczny model (zwany adaptacyjnym agentowym modelem zarządzania projektami informatycznymi) łączyć powinien cechy podejścia agentowego w celu modelowania struktury projektowej oraz cechy podejścia procesowego związanego z definiowaniem parametrów wejściowych (jak np. dojrzałość klienta), przetwarzania (z uwzględnieniem relacji między agentami) oraz wyjść w modelu (w postaci adaptowanych dobrych praktyk). Połączenie tych dwóch podejść pozwoli na przygotowanie ram dla opracowania ostatecznej wersji modelu. Uznano ponadto, że model ze względu na sugestie co do łączenia poszczególnych elementów struktury projektowej oraz łączenia (dopasowywania) dobrych praktyk zarządzania projektami informatycznymi nabywa cech adaptacyjnych. Odejście od sugerowania metody na rzecz sugerowania menedżerom dobrych praktyk dało początek podejściu, w którym na podstawie znanej (określonej) przez menedżera struktury projektu tworzony jest zestaw wskazówek, jak postępować w projekcie. Następuje zatem adaptacja dobrych praktyk do realiów projektowych. Takie podejście nazwano podejściem adaptacyjnym.

Łącząc zatem podejście agentowe, procesowe oraz adaptacyjne, przyjęto, że celem modelowania będzie środowisko nazwane ADAPTACYJNYM AGENTOWYM MODELEM ZARZĄDZANIA PROJEKTAMI INFORMATYCZNYMI opatrzone akronimem a2M (adaptacyjny agentowy Model).

3.4 Budowa prototypu funkcjonalnego modelu agentowego — submodel

Powiązane dokumenty