Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Paweł Maćkowski Nr albumu: 201180 Edytor do modelowania przepływów biznesowych Praca licencjacka na kierunku INFORMATYKA Praca wykonana pod kierunkiem Agaty Janowskiej Instytut Informatyki Czerwiec 2006
Oświadczenie kierujacego praca Potwierdzam, że niniejsza praca została przygotowana pod moim kierunkiem i kwalifikuje się do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego. Data Podpis kierującego pracą Oświadczenie autora (autorów) pracy Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowa została napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposób niezgodny z obowiązującymi przepisami. Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotem procedur związanych z uzyskaniem tytułu zawodowego w wyższej uczelni. Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załączoną wersją elektroniczną. Data Podpis autora (autorów) pracy
Spis treści 1. Ogólny opis.......................................... 7 1.1. Podstawowe pojęcia................................... 7 1.1.1. Definicje.................................... 7 1.1.2. Modelowanie przepływów biznesowych.................... 7 1.2. Opis produktu...................................... 8 1.3. Funkcjonalność poszczególnych warstw........................ 9 1.3.1. Warstwa bazy danych.............................. 9 1.3.2. Warstwa transportowa............................. 9 1.3.3. Warstwa logiki................................. 9 1.3.4. Warstwa prezentacji.............................. 9 1.4. Podobne narzędzia dostępne na rynku......................... 9 1.5. Dokumentacja użytkowa i opis implementacji..................... 9 1.6. Podsumowanie..................................... 10 2. Wkład w powstanie aplikacji................................ 11 2.1. Wprowadzenie..................................... 11 2.2. Pakiet model - projekt modelu i jego implementacja.................. 11 2.3. Pakiet model/commands - undo redo operacji..................... 11 2.4. Modyfikacja atrybutów przez okienko Properties................... 12 2.5. Algorytmy........................................ 12 2.6. Pakiet actions...................................... 13 2.7. Dodatki......................................... 13 3
Wprowadzenie Edytor do modelowania przepływów biznesowych jest narzędziem usprawniającym pracę firm oraz innych jednostek, dla których można zdefiniować jakiekolwiek zależności pomiędzy ich poszczególnymi elementami. System Process Data Flow pomaga znaleźć i sprecyzować te zależności. Pozwala na zdefiniowanie zadań oraz ich kosztów i na tej podstawie analizuje działalność firmy pod wybranymi przez użytkownika aspektami. Praca składa się z dwóch rozdziałów. Pierwszy rozdział stanowi krótkie wprowadzenie. Znajduje się tu krótki opis stworzonego przez nas produktu oraz opis dostępnej do niego dokumentacji. Drugi rozdział opisuje mój wkład wniesiony w powstanie aplikacji. 5
Rozdział 1 Ogólny opis 1.1. Podstawowe pojęcia 1.1.1. Definicje PDF (Process Data Flow) - niniejszy produkt - narzędzie do generowania i analizowania przepływów biznesowych. Przepływ biznesowy - jest to zbiór wzajemnie powiązanych elementarnych procesów zachodzących w danej jednostce. Zbiór ten jest realizowany w celu osiągnięcia pewnego celu biznesowego. Podczas realizacji przepływu biznesowego zadania lub informacje są przesyłane od jednego uczestnika do kolejnego zgodnie z właściwymi dla danej jedostki regułami postępowania. XML owa - baza danych umożliwiająca przechowywanie dokumentów XML-owych w formacie natywnym, tj. bez konieczności dokonywania jakiejkolwiek konwersji. 1.1.2. Modelowanie przepływów biznesowych Modelowanie przepływów biznesowych polega na usystematyzowaniu procesów zachodzących w modelowanym przedsiębiorstwie w celu optymalizacji przebiegu ich realizacji. Głównym efektem stworzenia dobrego modelu przepływów biznesowych jest możliwość realizacji strategii firmy w sposób jak najszybszy i jak najbardziej powtarzalny. W obecnym okresie szybkiego rozwoju gospodarczego modelowanie przepływów biznesowych staje się bardzo istotnym zagadnieniem. Procesy biznesowe firmy powinny zmieniać się równie szybko jak otaczające firmę realia gospodarcze. Z powodu rozwoju tej dziedziny tworzone modele są coraz bardziej rozbudowane i coraz bardziej skomplikowane. Niezbędnym więc staje się profesjonalne narzędzie do tworzenia takich modeli. Modelowanie przepływów biznesowych zachodzących w dowolnym przedsiębiorstwie staje się w dzisiejszych czasach niezbędne. Firmy, które nie modelują na bieżąco zachodzących w nich procesów stają się niekonkurencyjne z powodu niezadowalającego stosunku efektów pracy do poniesionych kosztów ich wytworzenia. Modelowanie przepływów biznesowych ma za zadanie ułatwić odpowiedzi na jakże często stawiane przez przedsiębiorców pytania: W jaki sposób działa moja firma? Jakie procedury są realizowane przez moja firmę? 7
Czy te procedury są przeprowadzane w sposób optymalny? Czy można poprawić efektywność przeprowadzanych procedur? Modelowanie przepływów biznesowych pomaga zrozumieć sposób, w jaki funkcjonuje przedsiębiorstwo. Pozwala przeanalizować realizowane przez niego zadania: zarówno w całości jak i jego poszczególne etapy. Wymienione powyżej cechy pozwalają nam na łatwe dostrzeżenie celu, jaki stawia się przed efektami zastosowania modelowania przepływów biznesowych. Celem tym jest niewątpliwie uzyskanie sposobu na redukcję kosztów działań, usprawnienie skomplikowanych procedur oraz maksymalne wykorzystanie potencjału pracowników. 1.2. Opis produktu Standardem w dużych przedsiębiorstwach stał się podział firmy na pomniejsze jednostki (np. departamenty), które mogą dzielić się na jeszcze mniejsze (np. wydziały) itd. Każda z tych jednostek odpowiedzialna jest za pewien obszar i w mniejszym bądź większym stopniu współpracuje z innymi jednostkami. Zależności pomiędzy tymi jednostkami mogą być różne. Za podział obowiązków w firmie oraz wydatki przedsiębiorstwa odpowiedzialne jest kierownictwo. Jednak w sytuacji gdy firma liczy sobie kilka tysięcy pracowników, trudnością staje się zarządzanie pracownikami oraz wydatkami na poszczególne jednostki. Duże przedsiębiorstwa potrzebują więc produktu, który w łatwy sposób ułatwi zarządzanie nie tylko wydatkami ale i przepływem informacji, zasobów, pracy. Istnieją firmy specjalizujące się tego typu działalnością jednak są one bardzo drogie i inwestycja ta może stać się nie opłacalna. Nasz program pomaga jawnie sprecyzować wymienione wcześniej zależności oraz w łatwy sposób pamaga wyliczać zdefiniowane charakterystyki. Naszym celem nie są jedynie duże przedsiębiorstwa. Przykładowo, program nasz pozwoli kilkuosobowej grupie informatyków określić zadania, zasoby oraz czasy poszczególnych osób i po określeniu przepływu prac pozwolić programowi wygenerować całkowity czas, koszt projektu oraz łatwo zsynchronizować ich pracę. Nasza aplikacja pomaga zarządzać przepływami informacji w firmie, mianowicie: tworzeniem przepływów, określaniem zależności pomiędzy procesami oraz tworzeniem zbiorczych raportów na podstawie tych diagramów. Korzyści biznesowe Zamawiającego korzystającego z produktu PDF : Usprawnienie współpracy wśród pracowników pracujących w firmie Jasne określenie zadań z firmie Sformalizowanie pojęcia przepływu informacji w obszarze zainteresowań firmy Jawne zdefiniowanie danych oraz obiektów pomiędzy którymi dane te przepływają Jawne określenie czynników związanych z przepływem tych danych od jakich ten przepływ zależy, oraz związane z tym przepływem charakterystyki Automatyczne wyliczanie charakterystyk dla całego procesu Dla osoby zarządzającej zespołem bądź większą firmą program PDF będzie w stanie szybko wyliczyć koszty, określić czas czy odpowiedzieć na pytanie czy zdefiniowany dla każdego pracownika harmonogram pracy jest efektywny. 8
1.3. Funkcjonalność poszczególnych warstw 1.3.1. Warstwa bazy danych Baza danych jest gotowa do przechowywania plików XML owych oraz plików graficznych załączanych do tworzonego schematu procesu. Dostęp do bazy danych realizowany jest poprzez szereg usług Web Service. Dane z bazy danych dostępne są także poprzez WWW po uprzednim zalogowaniu się na odpowiedniej stronie. W bazie istnieją odpowiednie role do których przypisuje się użytkowników zwykłych oraz z podwyższonymi uprawnieniami. 1.3.2. Warstwa transportowa Dane od logiki przesyłane są w formacie XML, po uprzedniej walidacji według odpowiedniego schematu xsd. Dane do logiki przesyłane są podobnie w formacie XML na podstawie którego tworzone są odpowiednie obiekty potrzebne logice. 1.3.3. Warstwa logiki Zarządza projektami, obsługuje zapis projektu do bazy oraz na dysk, odbiera sygnały od użytkownika na podstawie których wyliczane są różne statystyki, wylicza statystyki, generuje raporty, zapisuje raporty do pliku w formacie pdf. 1.3.4. Warstwa prezentacji Interfejs graficzny, zmiany stanu modelu dokonywnae są metodą "drag and drop", z menu kontekstowego lub menu nad schematem. Widok jest funkcją modelu, tzn. dla dowolnego stanu modelu można jednoznacznie wyznaczyć widok. Wyliczane statystyki wyświetlane są w postaci różnych wykresów. 1.4. Podobne narzędzia dostępne na rynku Na rynku istnieje wiele programów do definiowania diagramów przepływów danych (MS Visio, MS Project), jednak tego typu programy nie oferują szerokiej możliwości analizy tych przepływów, nie udostępniają tych danych publicznie oraz nie składują ich w centralnej bazie danych. Dodatkowo jest to w większości przypadków oprogramowanie płatne. 1.5. Dokumentacja użytkowa i opis implementacji Program przygotowany jest dla dwóch systemów operacyjnych: Windows oraz Linux. Jest on napisany jako plugin do środowiska Eclipse. Do jego działania potrzebne jest więc zainstalowanie tego środowiska a także wirtualnej maszyny Javy. Dostępna jest szeroka dokumentacja naszej aplikacji, w skład której wchodzą następujące dokumenty: Vision Software Development Plan Business Use Cases Software Architecture Document 9
Use Cases Acceptance Plan Test Plan Release Raport Poza tym przygotowana jest pełna dokumentacja javadoc, instrukcja zainstalowania bazy danych oraz podręcznik użytkownika. 1.6. Podsumowanie Dzięki korzystaniu z programu PDF : Firma będzie mogła zrezygnować z części prowadzonej dokumentacji Codzienna praca wielu pracowników zostanie ułatwiona poprzez zautomatyzowanie pewnych procedur Zdefiniuje się jawny podział obowiązków pomiędzy pracowników, ich obowiązki staną się kontrolowane a efekty ich pracy będą dokumentowane Dzięki konfrontacji zdefiniowanego wcześniej procesu z faktycznym stanem, będzie można sprawniej określić kolejne projekty i korygując błędy bardziej precyzyjnie przewidywać efekty kolejnych zadań Zwiększona zostanie wydajność pracy zatrudnionych osób Zwiększona zostanie efektywność przeprowadzanych procesów biznesowych oraz ułatwione zostanie wprowadzanie w nich zmian, a co za tym idzie zwiększy się zdolność adaptacji firmy do zachodzących zmian oraz zmniejszony zostanie koszt wprowadzania tych zmian Firma będzie bardziej konkurencyjna na rynku W przyszłości do naszej aplikacji łatwo będzie można dodać nowe funkcjonalności i dzięki temu uzyskać narzędzie, które będzie można wykorzystać w następujących dziedzinach: tworzenie prognoz finansowych prognozowanie zmian na rynkach finansowych prognozowanie zachowań na giełdzie papierów wartościowych prognozowanie optymalnych inwestycji pieniężnych prognozowanie zachowań konsumentów prognozowanie trendów w gospodarce pomoc w podjejmowaniu właściwych decyzji w takich dziedzinach jak finanse, zarządzanie i marketing wyliczanie ryzyka inwestycji 10
Rozdział 2 Wkład w powstanie aplikacji 2.1. Wprowadzenie W zakresie moich obowiązków wykonywanych w ramach projektu była organizacja podstawowej struktury pluginu oraz napisanie w pełni działającej wtyczki. 2.2. Pakiet model - projekt modelu i jego implementacja Zaprojektowałem i zaimplementowałem klasy, które reprezętują modelowany schemat. Najważniejsze z nich to: Schema PropertyObject Actor Flow Weight Sequence SchemaComponent 2.3. Pakiet model/commands - undo redo operacji W pakiecie tym znajdują się klasy pozwalające na undo/redo operacji. Aby była możliwość cofania konkretnej operacji należy napisać dla niej klasę, która jest podklasą klasy Command i zdefiniować w niej metody: execute redo undo Klasa Command zawsze związana jest z konkrętną operacją (utworzenie nowego aktora, utworzenie przepływu, usunięcie przepływu, zmiana nazwy atrybutu itp.). Wykonanie operacji następuje poprzez wstawienie na stos obiektu klasy Command, cofnięcie jej poprzez usunięcie ze stosu tegoż obiektu. Od strony użytkownika przewijanie operacji następuje poprzez przeciski undo/redo w menu. 11
2.4. Modyfikacja atrybutów przez okienko Properties W celu uruchomienia okna Properties należy wybrać z menu Window->Show View->Other...- >Basic->Properties. Pojawi się okno z danymi zaznaczonego obiektu (aktor, przepływ lub schemat). Dane te można zmieniać, nowe wartości będą widoczne w modelu. Jeśli zmieniana wartość jest wizualizowana to dzięki mechanizmowi powiadamiania (javabeans) zmiana będzie natychmiast widoczna na ekranie. Powyższy mechanizm realizowany jest przez dodanie do klas, które chcemy w ten sposób modyfikować, następujących atrybutów i metod: addpropertychangelistener firepropertychange removepropertychangelistener static IPropertyDescriptor[] getpropertydescriptors() getpropertyvalue(object propertyid) setpropertyvalue(object propertyid, Object value) ispropertyset(object id) resetpropertyvalue(object id) Przykładowe klasy w pakiecie model, które implementuja powyższe metody: PropertyObject Actor Flow Schema W celu zachowania przejrzystości wyświetlania atrybutów w okienku properties dodałem ich grupowanie np. data utworzenia/modyfikacji/dostępu obiektu znajduje się w rozwijanym katalogu Data. Grupowanie zaimplementowane jest w pakiecie /model/properties/ 2.5. Algorytmy Obliczenie optymalnej drogi dla zadanej sekwencji (zmodyfikowany Dijkstra), sekwencja jest okreśona przez aktorów i wagi (klasy Dijkstra i Result w pakiecie /analysisandreports) Sprawdzanie czy dla zadanego aktora lub schematu można wyliczać statystyki Wyliczenie wartości oczekiwanej, wariancji, odchylenia standardowego dla zadanego aktora będącego korzeniem drzewa 12
2.6. Pakiet actions Do tego pakietu dodałem większość dostępnych tam akcji: chowanie/wyświetlanie na planszy optymalnej drogi (ShowHideBestPathAction) animacja optymalnej drogi (BestPathAnimationAction) kopiowanie aktora (CopyDataAction) dodawanie i edycja wag poprzez okienko Weight Manager (WeightAction) edycja sekwencji poprzez okienko Sequence Manager (SequenceAction) dodawanie/usuwanie aktora z sekwencji z menu kontekstowego (SequenceAddActorAction i SequenceRemoveActorAction) chowanie/wyświetlanie na planszy aktualnej sekwencji (ShowHideSequenceAction) 2.7. Dodatki Możliwość zmniejszania/zwiększania figur na planszy (Zoom) Opis większości klas i wygenerowanie dokumentacji Javadoc Walidacja poleceń użytkownika Przygotowanie części prezentacji końcowej i jej wygłoszenie 13