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