Edytor do modelowania przepływów biznesowych
Transkrypt
Edytor do modelowania przepływów biznesowych
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˛e do przedstawienia jej w post˛epowaniu o nadanie tytułu zawodowego. Data Podpis kierujacego ˛ praca˛ 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 obowiazuj ˛ acymi ˛ przepisami. Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotem procedur zwiazanych ˛ z uzyskaniem tytułu zawodowego w wyższej uczelni. Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załaczon ˛ a˛ wersja˛ elektroniczna.˛ Data Podpis autora (autorów) pracy Spis treści 1. Ogólny opis . . . . . . . . . . . . . . . . . . . . . . 1.1. Podstawowe poj˛ecia . . . . . . . . . . . . . . . 1.1.1. Definicje . . . . . . . . . . . . . . . . 1.1.2. Modelowanie przepływów biznesowych 1.2. Opis produktu . . . . . . . . . . . . . . . . . . 1.3. Funkcjonalność poszczególnych warstw . . . . 1.3.1. Warstwa bazy danych . . . . . . . . . . 1.3.2. Warstwa transportowa . . . . . . . . . 1.3.3. Warstwa logiki . . . . . . . . . . . . . 1.3.4. Warstwa prezentacji . . . . . . . . . . 1.4. Podobne narz˛edzia dost˛epne na rynku . . . . . 1.5. Dokumentacja użytkowa i opis implementacji . 1.6. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 7 8 9 9 9 9 9 9 9 10 2. Wkład w powstanie aplikacji . . . . . . . . . . . . . . 2.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . 2.2. Pakiet model - projekt modelu i jego implementacja 2.3. Pakiet model/commands - undo redo operacji . . . 2.4. Modyfikacja atrybutów przez okienko Properties . 2.5. Algorytmy . . . . . . . . . . . . . . . . . . . . . . 2.6. Pakiet actions . . . . . . . . . . . . . . . . . . . . 2.7. Dodatki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 11 11 12 12 13 13 3 . . . . . . . . . . . . . Wprowadzenie Edytor do modelowania przepływów biznesowych jest narz˛edziem usprawniajacym ˛ prac˛e firm oraz innych jednostek, dla których można zdefiniować jakiekolwiek zależności pomi˛edzy 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˛e z dwóch rozdziałów. Pierwszy rozdział stanowi krótkie wprowadzenie. Znajduje si˛e tu krótki opis stworzonego przez nas produktu oraz opis dost˛epnej do niego dokumentacji. Drugi rozdział opisuje mój wkład wniesiony w powstanie aplikacji. 5 Rozdział 1 Ogólny opis 1.1. Podstawowe poj˛ecia 1.1.1. Definicje • PDF (Process Data Flow) - niniejszy produkt - narz˛edzie do generowania i analizowania przepływów biznesowych. • Przepływ biznesowy - jest to zbiór wzajemnie powiazanych ˛ elementarnych procesów zachodzacych ˛ w danej jednostce. Zbiór ten jest realizowany w celu osiagni˛ ˛ ecia pewnego celu biznesowego. Podczas realizacji przepływu biznesowego zadania lub informacje sa˛ przesyłane od jednego uczestnika do kolejnego zgodnie z właściwymi dla danej jedostki regułami post˛epowania. • XML’owa - baza danych umożliwiajaca ˛ 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 zachodzacych ˛ w modelowanym przedsi˛ebiorstwie 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˛e bardzo istotnym zagadnieniem. Procesy biznesowe firmy powinny zmieniać si˛e równie szybko jak otaczajace ˛ firm˛e realia gospodarcze. Z powodu rozwoju tej dziedziny tworzone modele sa˛ coraz bardziej rozbudowane i coraz bardziej skomplikowane. Niezb˛ednym wi˛ec staje si˛e profesjonalne narz˛edzie do tworzenia takich modeli. Modelowanie przepływów biznesowych zachodzacych ˛ w dowolnym przedsi˛ebiorstwie staje si˛e w dzisiejszych czasach niezb˛edne. Firmy, które nie modeluja˛ na bieżaco ˛ zachodzacych ˛ w nich procesów staja˛ si˛e niekonkurencyjne z powodu niezadowalajacego ˛ 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˛esto stawiane przez przedsi˛ebiorców pytania: • W jaki sposób działa moja firma? • Jakie procedury sa˛ realizowane przez moja firm˛e? 7 • Czy te procedury sa˛ 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˛ebiorstwo. Pozwala przeanalizować realizowane przez niego zadania: zarówno w całości jak i jego poszczególne etapy. Wymienione powyżej cechy pozwalaja˛ nam na łatwe dostrzeżenie celu, jaki stawia si˛e przed efektami zastosowania modelowania przepływów biznesowych. Celem tym jest niewatpliwie ˛ uzyskanie sposobu na redukcj˛e kosztów działań, usprawnienie skomplikowanych procedur oraz maksymalne wykorzystanie potencjału pracowników. 1.2. Opis produktu Standardem w dużych przedsi˛ebiorstwach stał si˛e podział firmy na pomniejsze jednostki (np. departamenty), które moga˛ dzielić si˛e na jeszcze mniejsze (np. wydziały) itd. Każda z tych jednostek odpowiedzialna jest za pewien obszar i w mniejszym badź ˛ wi˛ekszym stopniu współpracuje z innymi jednostkami. Zależności pomi˛edzy tymi jednostkami moga˛ być różne. Za podział obowiazków ˛ w firmie oraz wydatki przedsi˛ebiorstwa odpowiedzialne jest kierownictwo. Jednak w sytuacji gdy firma liczy sobie kilka tysi˛ecy pracowników, trudnościa˛ staje si˛e zarzadzanie ˛ pracownikami oraz wydatkami na poszczególne jednostki. Duże przedsi˛ebiorstwa potrzebuja˛ wi˛ec produktu, który w łatwy sposób ułatwi zarzadzanie ˛ nie tylko wydatkami ale i przepływem informacji, zasobów, pracy. Istnieja˛ firmy specjalizujace ˛ si˛e tego typu działalnościa˛ jednak sa˛ one bardzo drogie i inwestycja ta może stać si˛e 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 sa˛ jedynie duże przedsi˛ebiorstwa. 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˛e. Nasza aplikacja pomaga zarzadzać ˛ przepływami informacji w firmie, mianowicie: tworzeniem przepływów, określaniem zależności pomi˛edzy procesami oraz tworzeniem zbiorczych raportów na podstawie tych diagramów. Korzyści biznesowe Zamawiajacego ˛ korzystajacego ˛ z produktu ’PDF’: • Usprawnienie współpracy wśród pracowników pracujacych ˛ w firmie • Jasne określenie zadań z firmie • Sformalizowanie poj˛ecia przepływu informacji w obszarze zainteresowań firmy • Jawne zdefiniowanie danych oraz obiektów pomi˛edzy którymi dane te przepływaja˛ • Jawne określenie czynników zwiazanych ˛ z przepływem tych danych od jakich ten przepływ zależy, oraz zwiazane ˛ z tym przepływem charakterystyki • Automatyczne wyliczanie charakterystyk dla całego procesu Dla osoby zarzadzaj ˛ acej ˛ zespołem badź ˛ wi˛eksza˛ firma˛ program ’PDF’ b˛edzie 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łaczanych ˛ do tworzonego schematu procesu. Dost˛ep do bazy danych realizowany jest poprzez szereg usług Web Service. Dane z bazy danych dost˛epne sa˛ także poprzez WWW po uprzednim zalogowaniu si˛e na odpowiedniej stronie. W bazie istnieja˛ odpowiednie role do których przypisuje si˛e użytkowników zwykłych oraz z podwyższonymi uprawnieniami. 1.3.2. Warstwa transportowa Dane od logiki przesyłane sa˛ w formacie XML, po uprzedniej walidacji według odpowiedniego schematu xsd. Dane do logiki przesyłane sa˛ podobnie w formacie XML na podstawie którego tworzone sa˛ odpowiednie obiekty potrzebne logice. 1.3.3. Warstwa logiki Zarzadza ˛ projektami, obsługuje zapis projektu do bazy oraz na dysk, odbiera sygnały od użytkownika na podstawie których wyliczane sa˛ 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 sa˛ metoda˛ "drag and drop", z menu kontekstowego lub menu nad schematem. Widok jest funkcja˛ modelu, tzn. dla dowolnego stanu modelu można jednoznacznie wyznaczyć widok. Wyliczane statystyki wyświetlane sa˛ w postaci różnych wykresów. 1.4. Podobne narz˛edzia dost˛epne 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 oferuja˛ szerokiej możliwości analizy tych przepływów, nie udost˛epniaja˛ tych danych publicznie oraz nie składuja˛ ich w centralnej bazie danych. Dodatkowo jest to w wi˛ekszoś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˛ec zainstalowanie tego środowiska a także wirtualnej maszyny Javy. Dost˛epna jest szeroka dokumentacja naszej aplikacji, w skład której wchodza˛ nast˛epujace ˛ 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˛ecznik użytkownika. 1.6. Podsumowanie Dzi˛eki korzystaniu z programu ’PDF’: • Firma b˛edzie mogła zrezygnować z cz˛eści prowadzonej dokumentacji • Codzienna praca wielu pracowników zostanie ułatwiona poprzez zautomatyzowanie pewnych procedur • Zdefiniuje si˛e jawny podział obowiazków ˛ pomi˛edzy pracowników, ich obowiazki ˛ stana˛ si˛e kontrolowane a efekty ich pracy b˛eda˛ dokumentowane • Dzi˛eki konfrontacji zdefiniowanego wcześniej procesu z faktycznym stanem, b˛edzie można sprawniej określić kolejne projekty i korygujac ˛ bł˛edy bardziej precyzyjnie przewidywać efekty kolejnych zadań • Zwi˛ekszona zostanie wydajność pracy zatrudnionych osób • Zwi˛ekszona zostanie efektywność przeprowadzanych procesów biznesowych oraz ułatwione zostanie wprowadzanie w nich zmian, a co za tym idzie zwi˛ekszy si˛e zdolność adaptacji firmy do zachodzacych ˛ zmian oraz zmniejszony zostanie koszt wprowadzania tych zmian • Firma b˛edzie bardziej konkurencyjna na rynku W przyszłości do naszej aplikacji łatwo b˛edzie można dodać nowe funkcjonalności i dzi˛eki temu uzyskać narz˛edzie, które b˛edzie można wykorzystać w nast˛epujacych ˛ dziedzinach: • tworzenie prognoz finansowych • prognozowanie zmian na rynkach finansowych • prognozowanie zachowań na giełdzie papierów wartościowych • prognozowanie optymalnych inwestycji pieni˛eżnych • prognozowanie zachowań konsumentów • prognozowanie trendów w gospodarce • pomoc w podjejmowaniu właściwych decyzji w takich dziedzinach jak finanse, zarzadzanie ˛ i marketing • wyliczanie ryzyka inwestycji 10 Rozdział 2 Wkład w powstanie aplikacji 2.1. Wprowadzenie W zakresie moich obowiazków ˛ wykonywanych w ramach projektu była organizacja podstawowej struktury pluginu oraz napisanie w pełni działajacej ˛ wtyczki. 2.2. Pakiet model - projekt modelu i jego implementacja Zaprojektowałem i zaimplementowałem klasy, które reprez˛etuja˛ 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 znajduja˛ si˛e klasy pozwalajace ˛ na undo/redo operacji. Aby była możliwość cofania konkretnej operacji należy napisać dla niej klas˛e, która jest podklasa˛ klasy Command i zdefiniować w niej metody: • execute • redo • undo Klasa Command zawsze zwiazana ˛ jest z konkr˛etna˛ operacja˛ (utworzenie nowego aktora, utworzenie przepływu, usuni˛ecie przepływu, zmiana nazwy atrybutu itp.). Wykonanie operacji nast˛epuje poprzez wstawienie na stos obiektu klasy Command, cofni˛ecie jej poprzez usuni˛ecie ze stosu tegoż obiektu. Od strony użytkownika przewijanie operacji nast˛epuje 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˛e okno z danymi zaznaczonego obiektu (aktor, przepływ lub schemat). Dane te można zmieniać, nowe wartości b˛eda˛ widoczne w modelu. Jeśli zmieniana wartość jest wizualizowana to dzi˛eki mechanizmowi powiadamiania (javabeans) zmiana b˛edzie natychmiast widoczna na ekranie. Powyższy mechanizm realizowany jest przez dodanie do klas, które chcemy w ten sposób modyfikować, nast˛epujacych ˛ 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˛epu obiektu znajduje si˛e 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˛edacego ˛ korzeniem drzewa 12 2.6. Pakiet actions Do tego pakietu dodałem wi˛ekszość dost˛epnych 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˛ekszania figur na planszy (Zoom) • Opis wi˛ekszości klas i wygenerowanie dokumentacji Javadoc • Walidacja poleceń użytkownika • Przygotowanie cz˛eści prezentacji końcowej i jej wygłoszenie 13